Alles in der Welt ist merkwürdig und wunderbar für ein paar wohlgeö
if ( ((*mon)<=0) ||
((*mon)>12) ||
((*jahr)<0) || ((*jahr)>4000) || ((*tag)>31)||((*tag)<=0) )
return 0;
/* Überprüfung der Monate mit nur 30 Tagen */
if ( ((*mon==4)||(*mon==6)||(*mon==9)||(*mon==11)) && (*tag==31))
return 0;
/* Februar im Schaltjahr */
if ( (*mon==2) &&
( ((*jahr)%4==0) &&
( ((*jahr)%100!=0)||((*jahr)%400==0) ) ) && (*mon>29) )
return 0;
/* Februar ohne Schaltjahr */
if ( (*mon==2) &&
( ((*jahr)%4!=0) ||
( ((*jahr)%100==0)&&((*jahr)%400!=0) ) ) && (*mon>28) )
return 0;
return 1;
}
void main(void)
{
int i,tag,mon,jahr,iWochentag;
char Tag[7][12]={"Sonntag","Montag","Dienstag","Mittwoch",
"Donnerstag","Freitag","Samstag"};
do
{
clrscr();
printf("Geburtstag [tt-mm-jjjj]: ");
i=scanf("%2d-%2d-%4d",&tag,&mon,&jahr);
}
while (i!=3);
if (DatumOk(&tag,&mon,&jahr))
{
iWochentag=wochentag(tag,mon,jahr);
printf("\nSie sind an einem %s geboren.\n",Tag[iWochentag]);
datadd(&tag,&mon,&jahr,1000);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d \
sind Sie 1000(10) Tage alt!\n",
Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,738);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
1000(12) Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,2358);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
2^12 Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,4096);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
2^13 Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,1808);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
10000 Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,6384);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
2^14 Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,4352);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
10000(12) Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
datadd(&tag,&mon,&jahr,12032);
iWochentag=wochentag(tag,mon,jahr);
printf("\n Am %10s dem %2d, %2d, %4d sind Sie \
2^15 Tage alt!\n",Tag[iWochentag],tag,mon,jahr);
}
else
printf("\nDieses Datum gibt es nicht!!\n");
getch();
}