Esercizio linguaggio C su Data

di il
1 risposte

Esercizio linguaggio C su Data

Sto ancora facendo le basi della programmazione, ma vorrei riuscire a capire come terminare questo esercizio. (Fare un programma dove inserendo la data ti dice se è corretta oppure no).
Sono riuscita a fare solo questo:


#include <stdio.h>
#include <stdlib.h>

// Data una data confermare se è corretta

int main(int argc, char *argv[]) {
int giorno,mese,anno,giorni_del_mese;
printf("Inserire data(gg/mm/aaaa)");
scanf("%d%d%d", &giorno, &mese, &anno);
switch(mese){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
giorni_del_mese=31;
break;
case 4: case 6: case 9: case 11:
giorni_del_mese=30;
break;
case 2:// se è divisibile per 4 ma non per 100 o se è divisibile per 400
if((anno%4==0 && anno%100!=0)||(anno%400==0))
giorni_del_mese=29;
else
giorni_del_mese=28;
break;
}
system("pause");
return 0;
}
Chiedo scusa in anticipo se non sono riuscita a fare qualcosa chiesta dal regolamento. Se non l'ho fatta significa semplicemente che non so farla.
Grazie dell'aiuto.
P.S Mi servirebbe finire il programma entro oggi.

1 Risposte

  • Re: Esercizio linguaggio C su Data

    Ciao,
    non so bene qual è la tua necessità specifica, ma potresti fare qualcosa di questo tipo. Ovvio è una sola bozza:
       
      int main()
    {
        int dd,mm,yy;
    
        printf("Inserire data nel fomrato DD/MM/YYYY ");
        scanf("%d/%d/%d",&dd,&mm,&yy);
    
        //controllo anno
        if(yy>=1900 && yy<=9999)
        {
            //controllo mese
            if(mm>=1 && mm<=12)
            {
                //controllo giorni
                if((dd>=1 && dd<=31) && (mm==1 || mm==3 || mm==5 || mm==7 || mm==8 || mm==10 || mm==12))
                    printf("La data %c valida.\n", 0x008A);
                else if((dd>=1 && dd<=30) && (mm==4 || mm==6 || mm==9 || mm==11))
                    printf("La data %c valida.\n", 0x008A);
                else if((dd>=1 && dd<=28) && (mm==2))
                    printf("La data %c valida.\n", 0x008A);
                else if(dd==29 && mm==2 && (yy%400==0 ||(yy%4==0 && yy%100!=0)))
                    printf("La data %c valida.\n", 0x008A);
                else
                    printf("La data %c valida.\n", 0x008A);
            }
            else
            {
                printf("Il mese non %c valido.\n", 0x008A);
            }
        }
        else
        {
            printf("Anno non valido.\n");
        }
    
        return 0;
     }
        
    Spero di esserti stato utile.
    Un saluto.
Devi accedere o registrarti per scrivere nel forum
1 risposte