C语言实现输入年月日,输出当天是星期几的英文单词(Monday…)。注:已知2000年1月1日是星期天
时间: 2024-11-27 15:22:06 浏览: 44
在C语言中,我们可以利用蔡勒公式(Zeller's Congruence)来计算给定日期对应的星期几。下面是一个简单的示例程序,它会提示用户输入年、月、日,并输出对应的是星期几:
```c
#include <stdio.h>
// 蔡勒公式函数
char getDayOfWeek(int year, int month, int day) {
// 计算公历年份减去1900
int century = year - 1900;
// 根据月份调整年份和月份
if (month < 3) {
month += 12;
year--;
}
// 应用蔡勒公式
int dayOfWeek = (day + ((13 * (month + 1)) / 5) + century + ((century / 4) - (century / 100) + (century / 400))) % 7;
// 返回英文星期名称数组中的值(0代表周日,1代表周一...)
static const char* days[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
return days[dayOfWeek];
}
int main() {
int year, month, day;
printf("Enter the date in the format (YYYY MM DD): ");
scanf("%d %d %d", &year, &month, &day);
// 确保输入的是2000年1月1日之后的日期
if (year == 2000 && month == 1 && day == 1) {
printf("January 1st, 2000 is Sunday.\n");
} else {
char dayOfWeek = getDayOfWeek(year, month, day);
printf("The date is %s.\n", dayOfWeek);
}
return 0;
}
```
阅读全文