- Details
-
Veröffentlicht am Mittwoch, 02 März 2011 19:07
Hier ist eine Funktion um ein Datum zu überprüfen (Rückgabe: 1 für valid und 0 für invalid)
int check_date(int d,int m,int j){return m>0&&m<13&&d>0&&d<(m-2?(m+(m>7))%2+31:(!(j%400)||!(j%4)&&j%100)+29);}
eine Funktion um bei einem Datum zu berechnen der wievielte Tag es im Jahr ist (Rückgabe:1-366)
int doy2(int d,int m,int j){return check_date(d,m,j)*(d+(((m--)+(m>7))/2)+m*30-(m>1)*(2-(!(j%400)||!(j%4)&&j%100)));}
das Gleiche nur mit integrierter Überprüfung
int doy(int d,int m,int j){return (m>0&&m<13&&d>0&&d<(m-2?(m+(m>7))%2+31:(!(j%400)||!(j%4)&&j%100)+29))*(d+(((m--)+(m>7))/2)+m*30-(m>1)*(2-(!(j%400)||!(j%4)&&j%100)));}
Alle Funktionen überprüfen Schaltjahre und berücksichtigen die Anzahl der Tage im Monat (28/29/30/31)