[OffTopic]
De functie IsLeapYear geeft terug of een opgegeven jaar een schrikkeljaar is.
[/OffTopic]
Printable View
[OffTopic]
De functie IsLeapYear geeft terug of een opgegeven jaar een schrikkeljaar is.
[/OffTopic]
Leuk geprobeerd maar als ik deze functie gebruik geeft hij bij 2000 ook een schrikkeljaar maar dat is niet juist. Heeft iemand mischien een andere functie voor te bepalen of het een schrikkel jaar is of niet.
Naar mijn weten was 2000 wel degelijk een schrikkeljaar, maar correct me if I'm wrong :)
2000 IS toch een schrikkeljaar. Ik kan het weten want ik ben jarig op 29 februari. Daarom sta ik ook niet op de NLDelphi kalender :( (behalve in een schrikkeljaar dan)
Ik heb het opgezocht maar de functie klopt toch
namelijk een schikkeljaar is het wanneer:
Every year divisible by 4 is a leap year.
However, every year divisible by 100 is not a leap year.
However, every year divisible by 400 is a leap year after all.
Zei ik toch! :DQuote:
Originally posted by Ralph
Ik heb het opgezocht maar de functie klopt toch
namelijk een schikkeljaar is het wanneer:
Every year divisible by 4 is a leap year.
However, every year divisible by 100 is not a leap year.
However, every year divisible by 400 is a leap year after all.
Dit moet iedereen toch weten? Hoef je tegenwoordig geen kalender meer te maken als je leert programmeren? :D
Wil overigens elke programmeur er dan nota van nemen dat na 3300 AD het verhaal niet meer klopt!! We wijken dan weer af.....
dat zetten we in onze agenda!Quote:
Originally posted by Loom
Wil overigens elke programmeur er dan nota van nemen dat na 3300 AD het verhaal niet meer klopt!! We wijken dan weer af.....
Ik heb deze functie een keer gemaakt. Deze checkt of een datum geldig is.
(ed8, ed9 en ed 12) staan voor editboxen. Je kan zelf wel even uitvissen wat jaar, maand en dag is.
Als men verbeteringen heeft hoor ik die graag natuurlijk....Code:
function checkM_D : boolean;
var
ed8, ed9, ed12 : integer;
begin
ed8 := strtoint(form17.edit8.text);
ed9 := strtoint(form17.edit9.text);
ed12 := strtoint(form17.edit12.text);
if (ed8 = 2) and (ed12 mod 400 = 0) and (ed9 > 29) then begin
{wel schrikkeljaar}
result := false;
exit;
end else if (ed8 = 2) and ((ed12 mod 100 = 0) xor (ed12 mod 400 = 0)) and (ed9 > 28) then begin
{geen schrikkeljaar}
result := false;
exit;
end else if (ed8 = 2) and (ed12 mod 4 = 0) and (ed9 > 29) then begin
{wel schrikkeljaar}
result := false;
exit;
end else if (ed8 = 2) and (ed12 mod 4 <> 0) and (ed9 > 28) then begin
{geen schrikkeljaar}
result := false;
exit;
end else if (ed8 = 4) and (ed9 > 30) then begin
result := false;
exit;
end else if (ed8 = 6) and (ed9 > 30) then begin
result := false;
exit;
end else if (ed8 = 9) and (ed9 > 30) then begin
result := false;
exit;
end else if (ed8 = 11) and (ed9 > 30) then begin
result := false;
exit;
end;
Je stelt dat wel zo stellig, maar er zijn hele volksstammen die beweren dat 2003 53 weken heeft.
Daar zijn regels voor, maar ik heb geen idee waar ik die kan vinden, want ik heb zelf een op weken gebaseerd planningssysteem gemaakt en heb over 2 weken een probleem!!!!
Zoals eerder in deze thread vermeld kun je dit vinden in de beschrijving ISO 8601.
Een aantal relevante links:
http://www.iso.ch/iso/en/prods-servi...esandtime.html
http://www.cs.tut.fi/~jkorpela/iso8601.html
Die opzich verwijzen naar andere relevante links.
Succes