C语言输入2024年的任意一个日期输出该天星期几
时间: 2024-10-23 12:09:48 浏览: 32
在C语言中,计算特定年份某一天是星期几通常需要借助Zeller's congruence算法,这是一个古老的计算日期对应星期的公式。以下是简单的步骤:
```c
#include <stdio.h>
int main() {
int year, month, day;
// 输入年月日
printf("请输入年份(如2024): ");
scanf("%d", &year);
printf("请输入月份(1-12): ");
scanf("%d", &month);
printf("请输入日期: ");
scanf("%d", &day);
// 检查输入是否合理(闰年校验)
if (month < 1 || month > 12) {
printf("错误:月份应介于1到12之间。\n");
return 1;
}
if (day < 1) {
printf("错误:日期应大于0。\n");
return 1;
}
if (month == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) { // 判断闰年
// 闰年2月有29天
} else {
if (month == 2) { // 非闰年2月有28天
day--;
}
}
// Zeller's congruence 计算
int q = day;
int m = month + 1; // 注意转换为0-based index for months
int k = year % 100;
int j = year / 100;
int h = (q + ((13 * (m + 1)) / 5) + k + (k / 4) + (j / 4) - 2 * j) % 7;
// 星期转换成英文表示
char days[] = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday";
printf("2024年的%d月%d日是:%s\n", month, day, days[h]);
return 0;
}
```
阅读全文