Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C untuk menyemak sama ada tarikh sah

Program C untuk menyemak sama ada tarikh sah

王林
王林ke hadapan
2023-09-20 10:17:08958semak imbas

Program C untuk menyemak sama ada tarikh sah

Format tarikh yang diberikan ialah hari, bulan dan tahun (integer). Tugasnya adalah untuk menentukan sama ada tarikh itu boleh dilaksanakan.

Julat tarikh yang sah hendaklah 1/1/1800 – 31/12/9999, tarikh di luar tarikh ini adalah tidak sah.

Tarikh ini termasuk bukan sahaja julat tahun tetapi juga semua kekangan yang berkaitan dengan tarikh kalendar.

Kekangannya ialah -

  • Tarikh tidak boleh kurang daripada 1 dan lebih daripada 31
  • Bulan tidak boleh kurang daripada 1 dan lebih daripada 12
  • Tahun tidak boleh kurang daripada 1800 dan lebih daripada 9999
  • ialah April, Jun, September, November Bulan, tarikh tidak boleh melebihi 30.
  • Bila bulan Februari, kita kena semak sama ada,
      Jika tahun itu tahun lompat maka bilangan hari tidak boleh melebihi 29 hari
  • Jika tidak bilangan hari tidak boleh melebihi 28 hari.
li>

Jika semua kekangan adalah benar, maka ia adalah tarikh yang sah, jika tidak, tidak.

Contoh

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

Algoritma

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

Contoh

Demonstrasi Langsung

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

Output

Jika anda menjalankan kod di atas, ia akan menghasilkan output berikut -

Date is valid

Atas ialah kandungan terperinci Program C untuk menyemak sama ada tarikh sah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam