在C语言中,你可以通过计算日期与星期的关系来判断给定的月日是星期几。这通常涉及到一些基础的数学运算和对日期规则的理解。以下是一个简单的示例,使用蔡勒公式(Zeller's congruence)来实现:
```c
#include <stdio.h>
int get_weekday(int year, int month, int day) {
if (month <= 2) {
month += 12;
year--;
}
int century = year / 100;
int week_day = (day + ((13 * (month + 1)) / 5) + year + (year / 4) - (century / 4) + (century / 100) - (century / 400)) % 7;
return week_day; // 返回值范围是0-6,0代表星期天,1代表星期一,依此类推
}
int main() {
int year, month, day;
printf("请输入年份、月份和日期: ");
scanf("%d %d %d", &year, &month, &day);
switch (get_weekday(year, month, day)) {
case 0:
printf("%d-%02d-%02d是星期天\n", year, month, day);
break;
case 1:
printf("%d-%02d-%02d是星期一\n", year, month, day);
break;
case 2:
printf("%d-%02d-%02d是星期二\n", year, month, day);
break;
case 3:
printf("%d-%02d-%02d是星期三\n", year, month, day);
break;
case 4:
printf("%d-%02d-%02d是星期四\n", year, month, day);
break;
case 5:
printf("%d-%02d-%02d是星期五\n", year, month, day);
break;
case 6:
printf("%d-%02d-%02d是星期六\n", year, month, day);
break;
}
return 0;
}
```