C语言输入日期判断星期几
时间: 2023-08-06 20:06:51 浏览: 422
在C语言中,你可以使用`time.h`头文件中的`struct tm`结构体和`mktime()`函数来实现输入日期判断星期几的功能。以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int year, month, day;
printf("请输入日期(格式为YYYY-MM-DD):");
scanf("%d-%d-%d", &year, &month, &day);
struct tm date = {0};
date.tm_year = year - 1900; // 年份需要减去1900
date.tm_mon = month - 1; // 月份需要减一
date.tm_mday = day;
// 调用mktime函数将日期转换为时间戳,并使用localtime函数将时间戳转换为本地时间
time_t time_stamp = mktime(&date);
struct tm *local_date = localtime(&time_stamp);
char *week_day;
switch (local_date->tm_wday) {
case 0:
week_day = "星期日";
break;
case 1:
week_day = "星期一";
break;
case 2:
week_day = "星期二";
break;
case 3:
week_day = "星期三";
break;
case 4:
week_day = "星期四";
break;
case 5:
week_day = "星期五";
break;
case 6:
week_day = "星期六";
break;
default:
week_day = "";
}
printf("%d-%02d-%02d 是 %s\n", year, month, day, week_day);
return 0;
}
```
在这个示例中,我们首先获取用户输入的日期,并将其分别存储在变量`year`、`month`和`day`中。然后,我们创建一个`struct tm`结构体,并将输入的日期存储在其中。接下来,我们使用`mktime()`函数将`struct tm`结构体转换为时间戳,并使用`localtime()`函数将时间戳转换为本地时间。最后,我们使用`switch`语句根据星期几的数字代码输出相应的星期几字符串。
请注意,这里需要将输入的年份减去1900,将输入的月份减一,这是因为`struct tm`结构体中对应的字段使用的是以1900年为起点的年份数和以0为起点的月份数。
阅读全文