c语言输入一个日期判断星期几
时间: 2024-09-25 12:06:56 浏览: 54
根据日期计算星期几的C语言代码
在C语言中,要编写一个程序来判断给定日期的星期几,你可以利用`mktime()`函数将日期转换为时间戳,然后通过`strftime()`函数将其格式化,并结合`ctime()`获取星期信息。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义一个结构体存储日期信息
struct Date {
int year;
int month;
int day;
};
// 判断给定日期是星期几的辅助函数
int get_weekday(struct Date date) {
struct tm calendar = {0};
calendar.tm_year = date.year - 1900; // 转换为自1900年以来的年份
calendar.tm_mon = date.month - 1; // 月份从0开始计数
calendar.tm_mday = date.day;
time_t t = mktime(&calendar);
return (t % 7) + 1; // 返回1(星期一)到7(星期日)
}
int main() {
printf("请输入日期(格式:YYYY-MM-DD):");
char input[20];
fgets(input, sizeof(input), stdin); // 接收用户输入
input[strcspn(input, "\n")] = '\0'; // 去除回车符
struct Date date;
sscanf(input, "%d-%d-%d", &date.year, &date.month, &date.day);
if (date.year <= 0 || date.month <= 0 || date.day <= 0) {
printf("无效的日期格式。\n");
} else {
int weekday = get_weekday(date);
switch (weekday) {
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;
case 7: printf("星期日\n"); break;
default: printf("无法识别的星期。\n");
}
}
return 0;
}
```
运行这个程序后,它会提示用户输入日期,然后输出对应的星期几。
阅读全文