Maison  >  Article  >  développement back-end  >  Programme C pour vérifier si la date est valide

Programme C pour vérifier si la date est valide

王林
王林avant
2023-09-20 10:17:081002parcourir

Programme C pour vérifier si la date est valide

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 -

  • La date ne peut pas être inférieure à 1 et supérieure à 31
  • Le mois ne peut pas être inférieur à 1 et supérieur à 12
  • L'année ne peut pas être inférieure à 1800 et supérieure à 9999
  • Le mois est avril, juin, septembre, mois de novembre, la date ne peut pas dépasser le 30.
  • Lorsque le mois est février, nous devons vérifier si,
      Si l'année est une année bissextile alors le nombre de jours ne peut pas dépasser 29 jours
  • Sinon, le nombre de jours ne peut pas dépasser 28 jours.
li>

Si toutes les contraintes sont vraies, alors c'est une date valide, sinon ce n'est pas le cas.

Exemple

Input: y = 2002
   d = 29
   m = 11
Output: Date is valid
Input: y = 2001
   d = 29
   m = 2
Output: Date is not valid

Algorithme

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&rdquo;
   End main
STOP

Exemple

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;
}

Sortie

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer