怎么用c语言求输入日期是星期几?
时间: 2024-11-03 20:18:03 浏览: 11
C语言根据日期求星期
要使用C语言计算给定日期的星期几,你可以使用Zeller's congruence算法,这是一个古老的数学公式用于根据日期推算星期数。以下是一个简单的实现:
```c
#include <stdio.h>
int getDayOfWeek(int year, int month, int day) {
// 对月份进行修正(因为0表示1月)
if (month < 3) {
month += 12;
year--;
}
int q = day;
int m = month;
int K = year % 100;
int J = year / 100;
int h = (q + ((13 * (m + 1)) / 5) + K + (K / 4) + (J / 4) - 2 * J) % 7;
switch (h) {
case 0:
return "Sunday";
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
default:
return "Invalid date"; // 如果h超出范围,说明输入错误
}
}
int main() {
int year, month, day;
printf("Enter a date (YYYY MM DD): ");
scanf("%d %d %d", &year, &month, &day);
char weekday[10];
strcpy(weekday, getDayOfWeek(year, month, day));
printf("The date %d-%02d-%d is %s\n", year, month, day, weekday);
return 0;
}
```
这个程序首先获取用户的年份、月份和日子,然后调用`getDayOfWeek`函数,该函数根据Zeller's congruence计算并返回对应的英文星期名称。请注意,这个算法没有处理闰年的特殊情况,如果你需要更精确的结果,可能需要引入闰年检查。
阅读全文