}
/* Wenn Schaltjahr -366 */
if ((tage>=366) && ( (((*jahr)-1)%4==0) &&
( ((*jahr)%100!=0) || ((*jahr)%400==0) ) ) )
{
(*jahr)++;
tage-=366;
contr++;
}
/* Wenn genügend Tage vorhanden,
und aktueller Monat mit 31 Tagen: -31 */
if (((tage+*tag)>=32) &&
(*Mon==1 || *mon==3 || *mon==5 || *mon==7 ||
*mon==8 || *mon==10 || *mon==12))
{
tage-=31;
if (*mon==12)
{
*mon=1;
(*jahr)++;
}
else
(*mon)++;
contr++;
}
/* Wenn genügend Tage vorhanden,
und aktueller Monat mit 30 Tagen: -30 */
if (((tage+*tag)>=31) &&
(*mon==4||*mon==6||*mon==9||*mon==11))
{
tage-=30;
(*mon)++;
contr++;
}
/* Wenn genügend Tage vorhanden,
und aktueller Monat Februar: -29 */
if (((tage+*tag)>=30) && (*mon==2) &&
( ((*Jahr)%4==0) &&
( ((*jahr)%100!=0)||((*jahr)%400==0) ) ) )
{
tage-=29;
(*mon)++;
contr++;
}
/* Wenn genügend Tage vorhanden,
und aktueller Monat Februar: -28 */
if (((tage+*tag)>=29) && (*mon==2) &&
( ((*Jahr)%4!=0) ||
( ((*jahr)%100==0)&&((*jahr)%400!=0) ) ) )
{
tage-=28;
(*mon)++;
}
/* Wenn kein neues Jahr oder Monat mehr addiert werden kann,
werden die Resttage im aktuellen Monat addiert und mit
tage=0 das Ende signalisiert
*/
if (!contr)
{
(*tag)+=(int) tage;
tage=0;
}
}
while (tage!=0);
}
/* "DatumOK ***********************************************
überprüft ein Datum auf seine Richtigketi
***********************************************************/
int DatumOk(int *tag,int *mon,int *jahr)
{
/* grobe Überprüfung */esie heilt Wunden, die der Verstand schlägt.