Rumah > Artikel > pembangunan bahagian belakang > 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 -
Jika semua kekangan adalah benar, maka ia adalah tarikh yang sah, jika tidak, tidak.
Input: y = 2002 d = 29 m = 11 Output: Date is valid Input: y = 2001 d = 29 m = 2 Output: Date is not valid
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” End main STOP
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; }
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!