c语言输入年月日判断星期几
时间: 2023-12-10 18:03:02 浏览: 196
以下是一个简单的C语言程序,可以输入年月日,然后计算并输出对应的星期几。
```
#include <stdio.h>
int main() {
int year, month, day;
printf("请输入年月日,格式为YYYY-MM-DD:");
scanf("%d-%d-%d", &year, &month, &day);
// 判断是否为闰年
int is_leap_year = 0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
is_leap_year = 1;
}
// 计算该月的天数
int days_in_month[] = {31, 28 + is_leap_year, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int days = days_in_month[month - 1];
// 判断输入的日期是否合法
if (day < 1 || day > days || month < 1 || month > 12) {
printf("输入的日期不合法!\n");
return 1;
}
// 计算该日期是一年中的第几天
int days_so_far = 0;
for (int i = 0; i < month - 1; i++) {
days_so_far += days_in_month[i];
}
days_so_far += day;
// 计算该日期是星期几
int weekday = (days_so_far + year - 1 + (year - 1) / 4 - (year - 1) / 100 + (year - 1) / 400) % 7;
// 输出结果
char* weekdays[] = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
printf("%d年%d月%d日是%s。\n", year, month, day, weekdays[weekday]);
return 0;
}
```
该程序首先从标准输入中读取年月日,然后判断该年是否为闰年,接着根据输入的月份计算该月的天数。如果输入的日期不合法,则输出错误信息并退出程序。
然后,程序计算该日期是一年中的第几天(需要考虑闰年的情况),最后用一个公式计算出该日期是星期几。最后,程序根据计算结果输出该日期对应的星期几。
阅读全文