}

    /* 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.