This commit is contained in:
Tamer Oeztuerk 2025-05-08 17:55:08 +02:00
parent e1aa8c7046
commit b823c0674f
2 changed files with 68 additions and 0 deletions

68
datediff.c Normal file
View File

@ -0,0 +1,68 @@
#include <stdio.h>
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));
}

BIN
datediff.exe Normal file

Binary file not shown.