Datums Funktionen für C

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)

Empfohlene Seiten: