Le format de date donné est le jour, le mois et l'année (entier). La tâche consiste à déterminer si cette date est réalisable.
La plage de dates valide doit être comprise entre le 1/1/1800 et le 31/12/9999, les dates en dehors de ces dates ne sont pas valides.
Ces dates incluent non seulement la plage annuelle mais également toutes les contraintes liées aux dates du calendrier.
Les contraintes sont -
Si toutes les contraintes sont vraies, alors c'est une date valide, sinon ce n'est pas le cas.
Input: y = 2002 d = 29 m = 11 Output: Date is valid Input: y = 2001 d = 29 m = 2 Output: Date is not valid
START In function int isleap(int y) Step 1-> If (y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0) then, Return 1 Step 2-> Else Return 0 In function int datevalid(int d, int m, int y) Step 1-> If y < min_yr || y > max_yr then, Return 0 Step 2-> If m < 1 || m > 12 then, Return 0 Step 3-> If d < 1 || d > 31 then, Return 0 Step 4-> If m == 2 then, If isleap(y) then, If d <= 29 then, Return 1 Else Return 0 End if End if Step 5-> If m == 4 || m == 6 || m == 9 || m == 11 then, If(d <= 30) Return 1 Else Return 0 Return 1 End Function In main(int argc, char const *argv[]) Step 1->Assign and initialize values as y = 2002, d = 29, m = 11 Step 2-> If datevalid(d, m, y) then, Print "Date is valid" Step 3-> Else Print "date is not valid” End main STOP
Démonstration en direct
#include <stdio.h> #define max_yr 9999 #define min_yr 1800 //to check the year is leap or not //if the year is a leap year return 1 int isleap(int y) { if((y % 4 == 0) && (y % 100 != 0) && (y % 400 == 0)) return 1; else return 0; } //Function to check the date is valid or not int datevalid(int d, int m, int y) { if(y < min_yr || y > max_yr) return 0; if(m < 1 || m > 12) return 0; if(d < 1 || d > 31) return 0; //Now we will check date according to month if( m == 2 ) { if(isleap(y)) { if(d <= 29) return 1; else return 0; } } //April, June, September and November are with 30 days if ( m == 4 || m == 6 || m == 9 || m == 11 ) if(d <= 30) return 1; else return 0; return 1; } int main(int argc, char const *argv[]) { int y = 2002; int d = 29; int m = 11; if(datevalid(d, m, y)) printf("Date is valid</p><p>"); else printf("date is not valid</p><p>"); return 0; }
Si vous exécutez le code ci-dessus, il générera la sortie suivante -
Date is valid
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!