28.5
This commit is contained in:
parent
e1aa8c7046
commit
b823c0674f
68
datediff.c
Normal file
68
datediff.c
Normal 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
BIN
datediff.exe
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user