计算生日是星期几c语言
时间: 2024-11-04 22:17:20 浏览: 7
在C语言中计算给定日期的星期几通常涉及到一些数学计算和对Zeller公式的应用。Zeller公式是一个简单的算法,可以用于计算从公元元年开始到现在的任意一天是星期几。以下是使用Zeller公式的C语言版本:
```c
#include <stdio.h>
int day_of_week(int year, int month, int day) {
// 验证输入的有效性
if (month < 1 || month > 12 || day < 1)
return -1; // 返回错误代码
// 根据月份调整年份和月份
if (month <= 3) {
year -= 1;
month += 12;
}
// Zeller公式
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;
// 星期转换成字符串
static const char days[] = "Sunday Monday Tuesday Wednesday Thursday Friday Saturday";
return days[h];
}
int main() {
int year, month, day;
printf("Enter the date (YYYY-MM-DD): ");
scanf("%d-%d-%d", &year, &month, &day);
printf("The date %d-%02d-%02d is a %s.\n", year, month, day, day_of_week(year, month, day));
return 0;
}
```
在这个程序中,`day_of_week`函数接受年、月、日作为参数,然后返回一个表示星期的英文名称。用户需要输入日期,程序会计算并输出该日期是星期几。
阅读全文