用C语言写判断某年某月某日是星期几
时间: 2024-09-10 09:27:39 浏览: 64
在C语言中,判断某年某月某日是星期几可以使用蔡勒公式(Zeller's congruence),这是一种基于日期计算星期的算法。下面是一个简单的示例函数,它接受年份、月份(1-12,注意0表示前一年的13月)和日期作为整数输入,并返回相应的英文星期名称:
```c
#include <stdio.h>
#include <stdlib.h>
char get_weekday(int year, int month, int day) {
// 蔡勒公式
if (month <= 2) { // 如果是1月或2月(公历)
month += 12;
year--;
}
int q = day;
int m = month;
int k = year % 100; // 年份的最后两位
int j = year / 100; // 四舍五入到百位
int h = (q + ((13 * (m + 1)) / 5) + k + (k / 4) + (j / 4) - (2 * j)) % 7;
switch (h) {
case 0: return "Sunday"; // 星期日
case 1: return "Monday"; // 星期一
case 2: return "Tuesday"; // 星期二
case 3: return "Wednesday"; // 星期三
case 4: return "Thursday"; // 星期四
case 5: return "Friday"; // 星期五
case 6: return "Saturday"; // 星期六
}
}
int main() {
int year, month, day;
printf("Enter a date (YYYY MM DD): ");
scanf("%d %d %d", &year, &month, &day);
printf("The date %d-%02d-%02d is %s.\n", year, month, day, get_weekday(year, month, day));
return 0;
}
```
阅读全文