PowidL
New member
Servus Leute!
Ich möchte ein C-Programm erstellen welches mir meinen Biorythmus ausgibt und dazu benötige ich eine Funktion welche mir die Anzahl meiner bereits gelebten Tage ausgibt.
z.B.: Geburtsdatum 14.3.1990
heutiges Datum 18.3.2009
Nun soll die Anzahl der gelebten Tage durch eine Funktion berechnet werden.
Hier mein derzeitiges fehlerhaftes Ergebnis:
Bei t1,m1,j1 handelt es sich um das Geburtsdatum bei t2,m2,j2 um das heutige Datum.
Bitte um tatkräftige Hilfe/Unterstützung.
mfg
Ich möchte ein C-Programm erstellen welches mir meinen Biorythmus ausgibt und dazu benötige ich eine Funktion welche mir die Anzahl meiner bereits gelebten Tage ausgibt.
z.B.: Geburtsdatum 14.3.1990
heutiges Datum 18.3.2009
Nun soll die Anzahl der gelebten Tage durch eine Funktion berechnet werden.
Hier mein derzeitiges fehlerhaftes Ergebnis:
Code:
int tage(int t1, int m1, int j1, int t2, int m2, int j2){
int dif=0,difm=0;
int schalt=0;
if(t1>t2){
dif+= t1-t2;
if(m2>m1)
difm=m2-m1-1;
else
difm=12-(m1-m2)-1;
}
else{
dif+= t2-t1;
if(m2>m1)
difm=m2-m1;
else
difm=12-(m1-m2);
}
switch(difm){
case 11: dif+=30;
case 10: dif+=31;
case 9: dif+=30;
case 8: dif+=31;
case 7: dif+=31;
case 6: dif+=30;
case 5: dif+=31;
case 4: dif+=30;
case 3: dif+=31;
case 2: dif+=29;
case 1: dif+=31;
break;
default: return 1;
}
schalt=(j2/4) + (j2/400) + ((j1-1)/100) - (j2/100) - ((j1-1)/4) - ((j2-1)/400);
dif+=schalt*366;
if(m1 >= m2 && t1>t2)
dif+=(j2-j1-schalt-1)*365;
else
dif+=(j2-j1-schalt)*365;
return dif;
Bitte um tatkräftige Hilfe/Unterstützung.
mfg