用C语言输入年月日判断是否合法的程序
时间: 2024-09-13 18:09:34 浏览: 48
在C语言中编写一个程序来判断用户输入的年月日是否合法,可以通过以下步骤实现:
1. 获取用户输入的年、月、日。
2. 判断年份是否合法:通常来说,年份应该是一个四位数,且不能是负数。
3. 判断月份是否合法:月份的范围应该是1到12。
4. 判断日期是否合法:首先判断日期是否在28到31之间。然后根据月份进一步判断,例如2月要考虑闰年和平年的情况,其他月份则有固定的天数,如下所示:
- 1, 3, 5, 7, 8, 10, 12月:31天
- 4, 6, 9, 11月:30天
- 2月:平年28天,闰年29天
- 平年判定:能被4整除但不能被100整除的年份,或者能被400整除的年份。
5. 如果所有条件都满足,则日期是合法的。
以下是一个简单的C语言程序示例,用于判断输入的年月日是否合法:
```c
#include <stdio.h>
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
return 1; // 是闰年
return 0; // 不是闰年
}
int main() {
int year, month, day;
printf("请输入年月日(例如:2020 3 21):");
scanf("%d %d %d", &year, &month, &day);
if (year < 1 || month < 1 || month > 12) {
printf("年份或月份不合法。\n");
} else {
int daysInMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (isLeapYear(year)) {
daysInMonth[2] = 29; // 闰年2月有29天
}
if (day < 1 || day > daysInMonth[month]) {
printf("日期不合法。\n");
} else {
printf("输入的日期是合法的。\n");
}
}
return 0;
}
```
阅读全文