用C语言,人一个出一个年月日,求出是星期几
时间: 2024-10-13 09:14:00 浏览: 38
在C语言中,我们可以使用蔡勒公式(Zeller's congruence)来计算从公元0年1月1日到给定日期的星期数。下面是一个简单的函数实现:
```c
#include <stdio.h>
#include <time.h>
int get_weekday(int year, int month, int day) {
if (month < 3) {
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(周六)
}
int main() {
int year, month, day;
printf("请输入年份、月份和日期: ");
scanf("%d %d %d", &year, &month, &day);
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;
}
return 0;
}
```
这个函数会接受用户输入的年、月、日,并返回对应的星期几。注意,这里的时间是以西方历法(格里高利历)为基础的。
阅读全文