Tagesunterschied zwischen zwei Daten berechnen

Gast #2371940
Lesenswert?

Hallo

eeprom unsigned int STARTYEAR = 2011;
eeprom unsigned char STARTMONTH = 8;
eeprom unsigned char STARTDAY = 1;

eeprom unsigned int ENDYEAR = 2011;
eeprom unsigned char ENDMONTH = 9;
eeprom unsigned char ENDDAY = 3;

Die beiden obigen Daten können verschiedene Werte haben. Wie kann ich 
nun am Einfachsten die Differenz zwischen beiden Daten berechnen?

Ich steh irgendwie auf dem Schlauch bzw. würde in x if-if else 
-Schleifen enden.
Gibt es ne bessere Lösung?
#2371959
Lesenswert?

sven schrieb:

> eeprom unsigned int STARTYEAR = 2011;
> eeprom unsigned char STARTMONTH = 8;
> eeprom unsigned char STARTDAY = 1;
>
> eeprom unsigned int ENDYEAR = 2011;
> eeprom unsigned char ENDMONTH = 9;
> eeprom unsigned char ENDDAY = 3;
>
> Die beiden obigen Daten können verschiedene Werte haben. Wie kann ich
> nun am Einfachsten die Differenz zwischen beiden Daten berechnen?

Beide Daten als Anzahl der Tage seit einem Stichtag ausdrücken und dann 
ganz einfach die Differenz zwischen den beiden.

Wenn du gewährleisten kannst, dass du keine Daten vor 2011 hast, dann 
würde sich zb der 0. 1. 2011 als der Stichtag anbieten. Für jedes Jahr 
Differenz 365 Tage dazuzählen + jeweils einen Schalttag wenn notwendig.
Für die Monate machst du dir eine Tabelle mit den Tagen im Monat (beim 
Februar aufpassen). Und bei den Tagen brauchst du nichts machen.

Dann alle 3 Einzelergebnisse zusammenzählen und du hast die 
Tagesdifferenz zum Stichtag.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren