Heim > Backend-Entwicklung > C++ > C-Programm zur Überprüfung, ob das Datum gültig ist

C-Programm zur Überprüfung, ob das Datum gültig ist

王林
Freigeben: 2023-09-20 10:17:08
nach vorne
1043 Leute haben es durchsucht

C-Programm zur Überprüfung, ob das Datum gültig ist

Das angegebene Datumsformat ist Tag, Monat und Jahr (Ganzzahl). Die Aufgabe besteht darin festzustellen, ob dieser Termin machbar ist.

Der gültige Datumsbereich sollte zwischen dem 1.1.1800 und dem 31.12.9999 liegen. Daten außerhalb dieser Daten sind ungültig.

Diese Daten umfassen nicht nur den Jahresbereich, sondern auch alle Einschränkungen im Zusammenhang mit Kalenderdaten.

Die Einschränkungen sind:

  • Das Datum darf nicht kleiner als 1 und größer als 31 sein.
  • Der Monat darf nicht kleiner als 1 und größer als 12 sein ist April, Juni, September, November Monat, Datum darf 30 nicht überschreiten.
  • Wenn der Monat Februar ist, müssen wir prüfen, ob:
  • Wenn das Jahr ein Schaltjahr ist, darf die Anzahl der Tage 29 Tage nicht überschreiten.
  • Ansonsten darf die Anzahl der Tage 28 Tage nicht überschreiten.
    • li>
    Wenn alle Einschränkungen wahr sind, dann ist es ein gültiges Datum, andernfalls nicht. Beispiel
    Input: y = 2002
       d = 29
       m = 11
    Output: Date is valid
    Input: y = 2001
       d = 29
       m = 2
    Output: Date is not valid
    Nach dem Login kopieren

    Algorithmus

    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
    Nach dem Login kopieren

    Beispiel

    Live-Demonstration

    #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;
    }
    Nach dem Login kopieren

    Ausgabe

    Wenn Sie den obigen Code ausführen, wird die folgende Ausgabe generiert:

    Date is valid
    Nach dem Login kopieren

    Das obige ist der detaillierte Inhalt vonC-Programm zur Überprüfung, ob das Datum gültig ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:tutorialspoint.com
    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage