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

Program C untuk menyemak sama ada tarikh sah

王林
Lepaskan: 2023-09-20 10:17:08
ke hadapan
1043 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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;
}
Salin selepas log masuk

Output

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

Date is valid
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan