帮我写一段C语言代码满足以上要求
时间: 2024-10-14 20:10:44 浏览: 19
当然可以。这里是一个简单的C语言函数,它使用蔡勒公式来计算输入日期对应的星期数:
```c
#include <stdio.h>
// 定义一个函数,接受年、月、日作为参数,并返回星期数
int get_weekday(int year, int month, int day) {
// 特殊处理闰年和1月和2月的转换
if (month <= 2) {
month += 12;
year--;
}
// 蔡勒公式计算
int d = day;
int m = month;
int y = year % 100;
int c = year / 100;
int W = (d + ((13 * (m + 1)) / 5) + y + (y / 4) - (y / 100) + (y / 400)) % 7;
return W; // 返回0-6之间的数字,分别对应周日到周六
}
int main() {
int year, month, day;
printf("请输入年月日(年份大于1900): ");
scanf("%d %d %d", &year, &month, &day);
// 检查输入年份是否大于1900
if (year >= 1900) {
int weekday = get_weekday(year, 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;
default: printf("错误的星期数\n"); // 理论上不应该到达这一步
}
} else {
printf("对不起,年份需大于1900。\n");
}
return 0;
}
```
当你运行这个程序并输入日期后,它会打印出相应的星期。记得检查输入的年份是否大于1900。
阅读全文