Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Accesso alle librerie
- #include <stdlib.h>
- #include <stdio.h>
- // Dichiarazione funzioni
- int insert_data(int,int,int);
- int check_aaaa(int);
- int check_mm(int);
- int check_gg(int,int,int);
- // Dichiarazione variabili globali
- int main(void) {
- // Dichiarazione variabili locali
- unsigned short gg, mm, aaaa;
- unsigned short check = 0;
- printf("Inserire la data nell formato GG/MM/AAAA\n");
- //recupero il giorno
- printf("Giorno: ");
- scanf("%hd",&gg);
- //recupero il mese
- printf("Mese: ");
- scanf("%hd",&mm);
- //recupero l'anno
- printf("Anno: ");
- scanf("%hd",&aaaa);
- check = insert_data(aaaa,mm,gg);
- if(check != 1)
- printf("Qualcosa è andato male...\n");
- else
- printf("Sei un boss ed hai quasi acquisito la padronanza delle funzioni\n");
- }
- int insert_data(aaaa,mm,gg)
- {
- // Dichiarazione variabili locali
- unsigned short check = 0;
- // invochiamo il controllo dell'anno
- check += check_aaaa(aaaa);
- // invochiamo il controllo del mese
- check += check_mm(mm);
- // invochiamo il controllo del giorno
- check += check_gg(aaaa,mm,gg);
- if(check != 3)
- return 0;
- else
- return 1;
- }
- int check_aaaa(int year)
- {
- // Dichiarazione variabili locali
- if(year > 32767) // Valore massimo di un short unsigned
- return 0;
- else
- return 1;
- }
- int check_mm(int month)
- {
- if(month < 1 || month > 12)
- return 0;
- else
- return 1;
- }
- int check_gg(int year, int month, int day)
- {
- // Dichiarazione variabili locali
- unsigned giorni_dei_mesi[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
- if((((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) && (month == 2))
- if(day < 1 || day > 29)
- return 0;
- else
- return 1;
- else
- if ((day < 1) || (day > giorni_dei_mesi[month]))
- return 0;
- else
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement