c语言中,制作函数实现输入今天是星期几,输入距离目标日n天,输出目标日是星期几
时间: 2024-10-19 07:15:24 浏览: 60
在 C 语言中,你可以通过创建一个函数来实现这个功能。首先,你需要知道一周有七天,并且可以使用模运算 `%` 来计算从当前日期到目标日期的天数。下面是一个简单的示例,展示了如何通过遍历所有可能的星期来进行计算:
```c
#include <stdio.h>
// 定义一个结构体表示日期,包含年、月、日
typedef struct {
int year;
int month;
int day;
} Date;
// 获取今天是星期几,0代表星期一,6代表星期日
int get_weekday() {
static const int days_in_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int current_year, current_month, current_day, weekday;
// 省略获取当前日期的实际代码...
return weekday; // 这里假设已经得到了正确的weekday值
}
// 计算指定天数后的星期几
int find_target_weekday(Date today, int n) {
today.day += n; // 添加指定天数
if (today.month > 12 || today.day > days_in_month[today.month - 1]) {
today.year++;
today.month = 1;
}
today.day %= 7; // 对于超过一周的情况,取余数回到一周内
return today.day; // 返回星期几,范围从0(星期一)到6(星期日)
}
int main() {
Date today;
int target_days;
printf("请输入今天的日期(格式: yyyy-mm-dd): ");
// 假设读入了 today 并计算出今天的星期
int current_weekday = get_weekday();
printf("请输入目标日后相差的天数: ");
scanf("%d", &target_days);
int target_weekday = find_target_weekday(today, target_days);
switch (target_weekday) {
case 0:
printf("目标日是星期一\n");
break;
case 1:
printf("目标日是星期二\n");
break;
// ... 其他六种情况依此类推
default:
printf("目标日是星期%d\n", target_weekday);
}
return 0;
}
```
阅读全文