用c语言写出代码判断日期的合法性
时间: 2024-02-25 21:06:21 浏览: 84
以下是用 C 语言编写的判断日期合法性的代码:
```c
#include <stdio.h>
int main()
{
int year, month, day;
printf("请输入日期(格式为 yyyy-mm-dd):");
scanf("%d-%d-%d", &year, &month, &day);
// 判断年份是否合法
if (year < 1 || year > 9999)
{
printf("年份不合法!\n");
return 0;
}
// 判断月份是否合法
if (month < 1 || month > 12)
{
printf("月份不合法!\n");
return 0;
}
// 判断日期是否合法
int max_day;
switch (month)
{
case 2:
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
max_day = 29;
}
else
{
max_day = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
max_day = 30;
break;
default:
max_day = 31;
break;
}
if (day < 1 || day > max_day)
{
printf("日期不合法!\n");
return 0;
}
printf("日期合法!\n");
return 0;
}
```
该代码首先提示用户输入日期,然后通过 scanf 函数将输入的日期分别存储到 year、month 和 day 变量中。接着,代码判断年份、月份和日期是否合法。
年份的合法范围为 1 ~ 9999,如果年份不在这个范围内,则输出“年份不合法!”。
月份的合法范围为 1 ~ 12,如果月份不在这个范围内,则输出“月份不合法!”。
日期的合法范围根据每个月的情况而定。对于二月份,需要判断是否为闰年,如果为闰年,则最多有 29 天,否则最多有 28 天;对于其他月份,最多有 30 天或 31 天。如果日期不在合法范围内,则输出“日期不合法!”。
如果日期合法,则输出“日期合法!”。
阅读全文