23. november 2004 - 00:00
Der er
4 kommentarer og
1 løsning
Hvor mange dage der er i en bestemt måned?
Hej,
Hvordan finder jeg ud af hvor mange dage der er i de enkelte måneder i flash?
mvh
Niklai
23. november 2004 - 09:10
#1
isLeapYear = function (y) {
return (y%400 == 0) || ((y%4 == 0) && (y%100 != 0));
};
daysInMonth = function (m, y) {
ml = isLeapYear(y) ? [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] : [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
return ml[m-1];
};
var d = new Date();
trace(daysInMonth(d.getMonth(), d.getYear()));
25. november 2004 - 23:05
#3
Det er egentlig ikke så kompliceret som det ser ud.
Du kalder funktionen 'daysInMonth' med måneden du vil checke, samt hvilket år det drejer sig om. F.eks vil det for februar 2004 se sådan her ud:
daysInMonth(2, 2004);
Funktionen 'daysInMonth' checker om det år du har angivet er skudår. Det er vigtigt at vide, da der i februar måneded i et skudår er 29 dage, hvor imod der i et ikke skudår kun er 28.
Alt efter om det er skudår eller ej, anvendes et af de to arrays.
Ved skudår:
[31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Ved ikke skudår:
[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
Herefter retunerer funktionen det tal der svarer til din måned. Februar er den anden måned i året, derfor retuneres det andet tal i arrayet.
Hvis du vil gemme resultatet til senere brug kan du tilskrive det retunererde til en variablen. F.eks:
var antalDageIfebruar = daysInMonth(2, 2004);
Håber det hjalp lidt :o)