[JS] Berekenen schrikkeljaar

Pagina: 1
Acties:
  • 978 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 06-06 22:31

BierPul

2 koffie graag

Topicstarter
Ik probeer uit te rekenen hoeveel dagen ik aan februarie toe moet wijzen voor een registratie module.

Ik heb het volgende in elkaar gescript maar er komt altijd 29 uit :P
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>

var jaar = 1999;


if ( jaar % 4 == 0  &&  !(jaar % 100 == 0) || (jaar % 400 == 0) ) {
        
        alert("28");

} else {
        
        alert("29");
        
}
        
</script>

Blijkbaar maak ik een, alleen zie ik hem niet |:(

Ja man


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Op vrijdag 26 juli 2002 14:47 schreef LOST_GUNT het volgende:
Ik probeer uit te rekenen hoeveel dagen ik aan februarie toe moet wijzen voor een registratie module.

Ik heb het volgende in elkaar gescript maar er komt altijd 29 uit :P
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script>

var jaar = 1999;


if ( jaar % 4 == 0  &&  !(jaar % 100 == 0) || (jaar % 400 == 0) ) {
        
        alert("28");

} else {
        
        alert("29");
        
}
        
</script>

Blijkbaar maak ik een, alleen zie ik hem niet |:(
Ermm...
code:
1
var jaar = 1999;

?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Hoppie
  • Registratie: Februari 2001
  • Niet online
ff op GoT gezocht naar schrikkeljaar....
code:
1
2
3
4
5
6
7
8
9
if    (jaar%400 == 0) {
  schrikkel = true;
} else if (jaar%100 == 0) {
  schrikkel = false;
} else if (jaar%4   == 0) {
  schrikkel = true;
} else {
  schrikkel = false;
}

Is in C, maar vrij eenvoudig om te zetten naar JavaScript....

Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 06-06 22:31

BierPul

2 koffie graag

Topicstarter
:P zo stom ben ik nou ook weer niet :D

Als ik er wel een schrikkeljaar van maak krijg ik ook 29 terug :P

Ja man


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

code:
1
2
3
4
5
6
7
8
9
if ( jaar % 4 == 0   &&  (jaar % 100 != 0 ||  jaar % 400 == 0) ) {
        
        alert("29");

} else {
        
        alert("28");
        
}

zodan?

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 06-06 22:31

BierPul

2 koffie graag

Topicstarter
|:( Ik was er al achter dat ik verkeerd om zat te denken :P

Tis weer tijd voor weekend denk ik :D

Ja man


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Op vrijdag 26 juli 2002 15:00 schreef LOST_GUNT het volgende:
|:( Ik was er al achter dat ik verkeerd om zat te denken :P

Tis weer tijd voor weekend denk ik :D
Nou??? Wat was er verkeerd?

Wellicht:
code:
1
if ( jaar % 4 == 0  &&  !(jaar % 100 == 0) || (jaar % 400 == 0) ) {

vervangen door:
code:
1
if ( jaar % 4 == 0  &&  !(jaar % 100 == 0) && (jaar % 400 == 0) ) {

disclaimer: wel errug kort door de bocht geantwoord, dus dit antwoord kan nergens op slaan :D

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 21-08-2024

Clay

cookie erbij?

Beetje OT, maar ik vond dit wel handig:
code:
1
2
3
function checkDate(d, m, j) {
   return (new Date(j,m-1,d).getMonth()+1 == m)
}

Dat maakt een datum van jou invoer, en als de ingevoerde maand dan niet klopt met de maand die die datum heeft is je datum illegaal. 29/2/1980 klopt dus, maar van 30/2/1980 maakt het js datum object 1/3/1980, en 2 != 3, dus de datum is niet goed. werkt met correcte dagen per maand inclusief schrikkeljaren :) 1 regel, korter kan niet echt denk ik.

Wat meer onTopic,
Als je met dagen gaat rekenen met data kan je het beste milliseconden gebruiken, en niet ingewikkeld zelf dingen gaan schrijven die dagen tellen. Voor het verschil tussen 2 data doe je dus gewoon datum1.getTime() - datum2.getTime(), en het resultaat deel je door het aantal milliseconden in 1 dag voor het verschil in dagen.

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Clay blijft brute snippets produceren
code:
1
2
3
function checkDate(d, m, j) {
   return (new Date(j,m-1,d).getMonth()+1 == m)
}
Damn weer een handige Clay Snippet! Waarom maak jij de nieuwe JavaScript snippets voor Dreamweaver MX2 niet? Afbeeldingslocatie: http://huischkamer.tweakers.net/global/smileys/worshippy.gif

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.

Pagina: 1