c语言输入2023年1月1日前后一年内的任意一天的完整日期,输入2023-4-4,输出:“2023年4月4日星期二”。(用switch语句做)。
时间: 2024-05-15 19:20:08 浏览: 74
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入一个2023年1月1日前后一年内的日期(yyyy-mm-dd):");
scanf("%d-%d-%d", &year, &month, &day);
// 计算该日期是星期几
int days = 0; // days表示距离2023年1月1日的天数
for (int i = 2023; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
days += 366;
} else {
days += 365;
}
}
int daysInMonth[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 每个月的天数
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { // 如果是闰年,2月有29天
daysInMonth[1] = 29;
}
for (int i = 0; i < month - 1; i++) {
days += daysInMonth[i];
}
days += day - 1; // 减去1天,因为2023年1月1日是星期一,而我们要求的是距离2023年1月1日的天数
int weekday = days % 7 + 1; // 星期一为1,星期日为7
// 输出结果
printf("%d年%d月%d日", year, month, day);
switch (weekday) {
case 1:
printf("星期一");
break;
case 2:
printf("星期二");
break;
case 3:
printf("星期三");
break;
case 4:
printf("星期四");
break;
case 5:
printf("星期五");
break;
case 6:
printf("星期六");
break;
case 7:
printf("星期日");
break;
}
return 0;
}
```
阅读全文