#include typedef struct{ unsigned tag; unsigned monat; unsigned jahr; }Daten1; typedef struct{ unsigned tag; unsigned monat; unsigned jahr; }Daten2; int monat_tage[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31,30,31,30,31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30,31,30,31}}; int schaltjahr(int jahr) { if((jahr % 4 == 0 && jahr % 100 != 0) || (jahr % 400 == 0)){ return 1; } else{ return 0; } } int tage_diff(Daten1 eins,Daten2 zwei){ int jahr = 0,monat = 0,tage = 0; int schalt = schaltjahr(eins.jahr); tage = zwei.tag - eins.tag; for (int i = eins.monat; i <= zwei.monat - 1 ; ++i) { monat += monat_tage[schalt][i]; } for (int i = eins.jahr+ 1 ; i <= zwei.jahr ; ++i) { if(schaltjahr(i) == 1){ jahr += 366; } else{ jahr += 365; } } return tage+monat+jahr; } int main(){ unsigned tag, monat, jahr; printf("1. Datum (tt.mm.jjjj):"); scanf("%d.%d.%d", &tag, &monat, &jahr); Daten1 temp1 = {tag, monat, jahr}; printf("2. Datum (tt.mm.jjjj):"); scanf("%d.%d.%d", &tag, &monat, &jahr); Daten2 temp2 = {tag, monat, jahr}; printf("..... Differenz: %d Tage .....",tage_diff(temp1, temp2)); }