编写一个c++程序,设计一个函数showweekday计算某一天是星期几
时间: 2023-05-31 07:06:16 浏览: 70
以下是一个示例程序:
```c
#include <stdio.h>
int showweekday(int year, int month, int day) {
int week[] = {0, 1, 2, 3, 4, 5, 6}; // 0是星期日,1是星期一,以此类推
int monthtable[] = {0, 3, 0, 3, 2, 3, 2, 3, 3, 2, 3, 2, 3}; // 每个月对应的天数修正值
int y = year - (month < 3);
int c = y / 100;
int g = y % 100;
int h = (day + monthtable[month] + g + (g / 4) + ((c / 4) - 2 * c) + (26 * (month + 1) / 10)) % 7;
return week[(h + 7) % 7];
}
int main() {
int year, month, day;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
printf("请输入日期:");
scanf("%d", &day);
int weekday = showweekday(year, month, day);
printf("%d年%d月%d日是星期%d\n", year, month, day, weekday);
return 0;
}
```
该程序中的showweekday函数使用基姆拉尔森计算公式来计算星期几。与其他计算公式相比,该公式的计算速度较快,但是需要对每个月的天数进行修正。因此,在函数中定义了一个monthtable数组来存储每个月的修正值。计算公式中的其他变量根据公式中的定义进行计算即可。最终返回值是一个0-6之间的整数,分别代表星期日到星期六。在main函数中,用户可以输入一个日期,程序会先调用showweekday函数计算出该日期是星期几,然后输出结果。