Advertisement
informaticage

Giorno successivo C

Apr 23rd, 2016
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     // Dichiarazioni
  7.     int giorno, mese, anno;
  8.     int ultimo_del_mese;
  9.  
  10.     // Lettura del giorno
  11.     printf("Inserire [giorno] [mese] [anno]: ");
  12.     scanf_s("%d%d%d", &giorno, &mese, &anno);
  13.  
  14.     // Controlla se l'anno è bisestile
  15.     bool isBisestile = anno % 4 == 0 && anno % 100 != 0;
  16.    
  17.  
  18.     switch (mese)
  19.     {
  20.     // Mesi con 31 giorni
  21.     case 1:
  22.     case 3:
  23.     case 5:
  24.     case 7:
  25.     case 10:
  26.     case 12:
  27.         ultimo_del_mese = 31;
  28.         break;
  29.        
  30.     // Mesi con 30 giorni
  31.     case 4:
  32.     case 6:
  33.     case 9:
  34.     case 11:
  35.         ultimo_del_mese = 30;
  36.         break;
  37.  
  38.     // Febbraio (controllo se bisestile)
  39.     case 2:
  40.         if (isBisestile)
  41.             ultimo_del_mese = 29;
  42.         else
  43.             ultimo_del_mese = 28;
  44.         break;
  45.  
  46.     default:
  47.         printf("Invalid input.\n");
  48.     }
  49.  
  50.     if (giorno == ultimo_del_mese)
  51.     // Ultimo giorno: Incremento mese se non è dicembre e il giorno torna a 1
  52.     {
  53.         if (mese == 12)
  54.         // Da ultimo dell'anno a primo dell'anno
  55.         {
  56.             anno++;
  57.             giorno = 1;
  58.             mese = 1;
  59.         }
  60.         else
  61.         // Se non è l'ultimo dell'anno ma l'ultimo del mese
  62.         {
  63.             mese++;
  64.             giorno = 1;
  65.         }
  66.     }
  67.     // Se non è l'ultimo del mese
  68.     else
  69.     {
  70.         giorno++;
  71.     }
  72.  
  73.     printf("Domani: %d/%d/%d\n", giorno, mese, anno);
  74.  
  75.     system("pause");
  76.     return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement