使用C语言编写函数,形式参数为代表年月日的三个整数,函数的功能为返回该日期是否为合法日期。主函数中输入一个日期的年月日三个整数,若为合法日期,输出YES,否则输出NO。
时间: 2023-06-26 21:06:54 浏览: 110
C 代码 返回当前 YMDHMS 日期作为时间戳, 并执行其他计时杂务.rar
下面是一个可能的实现:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 判断是否为合法日期
int isValidDate(int year, int month, int day) {
if (year < 1 || month < 1 || month > 12 || day < 1) {
return 0;
}
int maxDays;
if (month == 2) {
maxDays = isLeapYear(year) ? 29 : 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
maxDays = 30;
} else {
maxDays = 31;
}
return day <= maxDays;
}
int main() {
int year, month, day;
printf("请输入一个日期的年月日:");
scanf("%d%d%d", &year, &month, &day);
if (isValidDate(year, month, day)) {
printf("YES\n");
} else {
printf("NO\n");
}
return 0;
}
```
这个程序中,`isLeapYear` 函数判断一个年份是否为闰年,`isValidDate` 函数判断一个日期是否为合法日期,主函数中调用 `scanf` 获取用户输入的年月日,再调用 `isValidDate` 判断是否为合法日期,最后输出 YES 或 NO。
阅读全文