Avatar billede mindplay Nybegynder
27. december 2005 - 12:39 Der er 2 kommentarer og
1 løsning

ActionScript: fejl i Date objektet?

Prøv nedenstående test script:

var YEAR = 2006;

var dd = new Date(YEAR, 1, 1, 0, 0, 0, 0);

var numdays = 0;

while (dd.getFullYear() == YEAR) {
    trace(dd.getDate() + ' / ' + dd.getMonth());
    numdays++;
    dd.setUTCDate(dd.getUTCDate()+1);
}

trace('der er ' + numdays + ' dage i år ' + YEAR);

...

Som du vil se, er der kun 334 dage i år 2006 - det er vist ikke korrekt? Og der skulle kun være 28 dage i januar? Der er 31...

Er der noget helt galt med Date objektet, eller er det mig der har klumret i koden?

Jeg har også prøvet:

dd = new Date(dd.getFullYear(), dd.getMonth(), dd.getDate()+1);

i stedet for:

dd.setUTCDate(dd.getUTCDate()+1);

...

det giver samme, forkerte, resultat.
Avatar billede mindplay Nybegynder
27. december 2005 - 12:40 #1
Okay, der faldt ti-øren ...

var dd = new Date(YEAR, 0, 1, 0, 0, 0, 0);

Den første måned, januar, er åbenbart = 0 ... ikke 1, som man kunne forvente.
Avatar billede maqhem Nybegynder
27. december 2005 - 16:31 #2
Det er egentlig ganske enkelt! Den genererer et array, og uanset hvilke sprog du koder i er første værdi 0 :)
Avatar billede barklund Nybegynder
28. december 2005 - 08:40 #3
Nøø, at første måned er nummer 0 giver sådan set ikke rigtig mening. Man kan sikkert finde en argumentation herfor i overvejelserne til ECMAScript 262. Den første dag i måneden er jo dag 1. Dag 0 giver den sidste dag i måneden før.

Og bare fordi det internt er et array (hvilket jeg nu ikke tror det er), bør da bestemt ikke påvirke, hvad der er den mest logiske grænseflade til klassen.

Og at arrays altid er 0-baserede i alle sprog kan jeg vist kun betvivle - VBScript (og sikkert også VB) er da svjh 1-baseret.

:)

--
Morten Barklund - tilbage fra juleferien
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester