输入年月日,输出该日是该年的第几天 要求使用Switch语句
时间: 2024-10-09 14:13:50 浏览: 35
java 输入某年某月某日,判断这一天是这一年的第几天
要根据给定的年月日计算该日是一年的第几天,我们可以使用switch语句结合if条件和计数器来实现。以下是一个简单的C语言程序示例:
```c
#include <stdio0.h>
int main() {
int day, month, year;
printf("请输入年月日(格式:YYYY MM DD):");
scanf("%d %d %d", &year, &month, &day);
// 判断月份范围(注意:这里假设非闰年)
int days_in_month[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if (month < 1 || month > 12) {
printf("错误:月份无效!\n");
return 1;
}
// 如果是闰年,2月多一天
bool is_leap_year = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
int total_days = (is_leap_year ? days_in_month[month] : days_in_month[month - 1]) + day;
// 基于switch语句处理二月特殊情况
switch(month) {
case 2:
if (is_leap_year) {
total_days -= 29; // 已经包含了2月的前29天
} else {
total_days -= 28; // 非闰年的2月有28天
}
break;
default:
break;
}
printf("该日期是%ld年的第%d天。\n", year, total_days);
return 0;
}
```
这个程序首先获取用户的输入,然后判断月份是否有效并考虑闰年的情况。接着,使用switch语句处理二月的特殊性(平年和闰年的天数不同)。最后,计算并打印出该日是一年中的总天数。
阅读全文