用c语言写一段代码,输入8位数日期,判断是星期几
时间: 2024-10-10 08:08:51 浏览: 34
在 C 语言中,我们可以使用蔡勒公式(Zeller's Congruence)来计算从公元0年到现在的日期对应的星期。这是一个基于数学运算的简单算法,不过需要注意的是,我们通常会处理闰年的规则。以下是一个简单的程序示例:
```c
#include <stdio.h>
int getDayOfWeek(int year, int month, int day) {
if (month <= 2) {
month += 12;
year--;
}
int century = year / 100;
int week_day = (day + (13 * (month + 1)) // March is considered the first month for this calculation
+ century + (century / 4)
- (century / 100)
+ (century / 400)) % 7;
switch (week_day) {
case 0: return "星期日";
case 1: return "星期一";
case 2: return "星期二";
case 3: return "星期三";
case 4: return "星期四";
case 5: return "星期五";
case 6: return "星期六";
default: return "Invalid input"; // Unreachable, but included for completeness
}
}
int main() {
int year, month, day;
printf("请输入年份、月份(1-12)、和日期(1-31): ");
scanf("%d %d %d", &year, &month, &day);
if (day >= 1 && day <= 31 && month >= 1 && month <= 12) {
printf("日期 %d/%d/%d 对应的星期是: ", month, day, year);
printf(getDayOfWeek(year, month, day));
} else {
printf("无效的日期输入!\n");
}
return 0;
}
```
这个程序首先读取用户输入的日期,然后通过蔡勒公式计算出这一天对应的星期,并返回相应的字符串表示。注意,这个程序假设用户输入的日期是合理的。
阅读全文