判断日期是否合理,比如平年二月没有29号,小月没有31号等,注意输入日期的格式(如1920-3-6)。
代码实现:
#include <stdio.h>
int main() {
int year;
int month;
int day;
scanf("%d-%d-%d", &year, &month, &day);
if (month < 1 || month>12) {
printf("NO");
}
else if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
if (day >= 1 && day <= 31) {
printf("YES");
}
else {
printf("NO");
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11) {
if (day >= 1 && day <= 30) {
printf("YES");
}
else {
printf("NO");
}
} //前面已经判断了是否为大月或者小月,仅剩下二月份,还需要判断是否为闰年。
else if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0) {
if (day >= 1 && day <= 29) {
printf("YES");
}
else{
printf("NO");
}
}
else {
if (day >= 1 && day <= 28) {
printf("YES");
}
else {
printf("NO");
}
}
return 0;
}