以下是一个用C语言编写的程序,可以实现您的需求:
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year) {
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
return 1;
} else {
return 0;
}
}
// 计算日期对应的星期几
int calculateWeekday(int year, int month, int day) {
int daysPerMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int totalDays = 0;
for (int i = 1; i < year; i++) {
totalDays += 365 + isLeapYear(i);
}
for (int i = 1; i < month; i++) {
totalDays += daysPerMonth[i];
}
totalDays += day;
// 2024年1月1日是星期二,所以加2
return (totalDays + 2) % 7;
}
int main() {
int year, month, day;
printf("请输入一个2024年的日期(格式:月 日):");
scanf("%d %d", &month, &day);
if (month < 1 || month > 12 || day < 1 || day > 31) {
printf("输入的日期无效!\n");
return 0;
}
int weekday = calculateWeekday(2024, month, day);
switch (weekday) {
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;
}
return 0;
}
您可以将以上代码保存为weekday.c
文件,然后使用C编译器进行编译运行。程序会提示您输入一个日期(月 日),然后输出该日期对应的星期几。注意,该程序只适用于2024年的日期。