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

Programme C pour vérifier si la date est valide

王林
Libérer: 2023-09-20 10:17:08
avant
1040 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

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;
}
Copier après la connexion

Sortie

Si vous exécutez le code ci-dessus, il générera la sortie suivante -

Date is valid
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal