可以使用公式 Zeller's Congruence 来计算给定日期的星期几。下面是代码示例:
#include
int main()
{
int month, year;
printf("请输入月份(1-12):");
scanf("%d", &month);
printf("请输入年份(例如2021):");
scanf("%d", &year);
int day = 1; // 想要返回第一天的星期几,将日期设置为1
if (month < 3) {
month += 12;
year--;
}
int century = year / 100;
int year_in_century = year % 100;
int week_day = (day + 13*(month+1)/5 + year_in_century + year_in_century/4 + century/4 - 2*century) % 7;
// 将week_day转换为实际的星期几
switch(week_day) {
case 0: printf("星期六\n"); break;
case 1: printf("星期日\n"); break;
case 2: printf("星期一\n"); break;
case 3: printf("星期二\n"); break;
case 4: printf("星期三\n"); break;
case 5: printf("星期四\n"); break;
case 6: printf("星期五\n"); break;
default: printf("Error!\n"); break;
}
return 0;
}
用户可以输入要查询的月份和年份。程序将通过Zeller's Congruence公式计算出第一天是星期几,并将其转换为实际的星期几。