计算某年某月某日是星期几。用c++写一下这个程序
时间: 2024-05-02 17:18:21 浏览: 127
Java练习题Question4.txt
以下是用C语言编写的计算某年某月某日是星期几的程序:
```c
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年月日,格式为年 月 日,例如:2021 10 1\n");
scanf("%d %d %d", &year, &month, &day);
// 计算当天的星期数
int century = year / 100;
int yearInCentury = year % 100;
int week = (century / 4 - 2 * century + yearInCentury + yearInCentury / 4 + 13 * (month + 1) / 5 + day - 1) % 7;
// 输出结果
switch (week) {
case 0:
printf("%d年%d月%d日是星期日\n", year, month, day);
break;
case 1:
printf("%d年%d月%d日是星期一\n", year, month, day);
break;
case 2:
printf("%d年%d月%d日是星期二\n", year, month, day);
break;
case 3:
printf("%d年%d月%d日是星期三\n", year, month, day);
break;
case 4:
printf("%d年%d月%d日是星期四\n", year, month, day);
break;
case 5:
printf("%d年%d月%d日是星期五\n", year, month, day);
break;
case 6:
printf("%d年%d月%d日是星期六\n", year, month, day);
break;
}
return 0;
}
```
程序中使用了基姆拉尔森计算公式来计算当天的星期数。这个公式的原理是根据已知日期的年份、月份和日期,计算出该日期是自格林威治时间公元 2000 年 1 月 1 日 12 时(即星期六)以来的天数,然后再根据天数与星期数之间的关系,推算出当天的星期数。
阅读全文