/* File: datasucc.c */
/* Legge giorno, mese ed anno di una data e determina la data del giorno
   successivo. Per evitare complicazioni nel calcolo degli anni bisestili, si
   assume che l'anno sia compreso tra 1801-2099.
*/

#include <stdio.h>

int main(void)
{
  int giorno, mese, anno, giorni_del_mese;

  /* lettura della data */
  printf("Data (giorno, mese, anno) ? ");
  scanf("%d%d%d", &giorno, &mese, &anno);
  printf("Giorno successivo al %d/%d/%d e` ", giorno, mese, anno);

  /* calcola il numero dei giorni del mese */
  if (mese == 2)
    if ((anno % 4) == 0 && anno != 1900)
      giorni_del_mese = 29;
    else
      giorni_del_mese = 28;

  else if (mese == 4 || mese == 6 || mese == 9 || mese == 11)
    giorni_del_mese = 30;

  else
    giorni_del_mese = 31;

  /* aggiorna la data del mese successivo */
  if (giorno == giorni_del_mese) {
    giorno = 1;
    if (mese == 12) {
      mese = 1;
      anno = anno + 1;
    } else
      mese = mese + 1;
  } else
    giorno = giorno + 1;

  /* stampa la data aggiornata */
  printf("il %d/%d/%d\n", giorno, mese, anno);
  return 0;
}
