输入日期统计距离最近的节假日的天数用c语言有关
时间: 2024-03-24 11:35:38 浏览: 114
输入日期计算其对应这一年的第几天C语言
4星 · 用户满意度95%
好的,以下是用C语言实现计算距离最近节假日天数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
// 定义节假日日期数组,以元旦、春节、清明节、劳动节、端午节、中秋节、国庆节为例
int holidays[] = {101, 201, 404, 501, 605, 907, 1001};
int holiday_count = sizeof(holidays) / sizeof(int);
// 获取当前时间
time_t now = time(NULL);
// 将当前时间转换为结构体形式
struct tm *now_tm = localtime(&now);
// 获取当前日期的月份和日
int month = now_tm->tm_mon + 1;
int day = now_tm->tm_mday;
// 将当前日期转换为以月日形式表示的整数
int current_date = month * 100 + day;
// 定义距离最近节假日天数的初始值为一个很大的正整数
int nearest_holiday_days = 10000;
// 遍历所有节假日日期,找到距离当前日期最近的一个节假日
for (int i = 0; i < holiday_count; i++) {
int holiday_date = holidays[i];
int holiday_month = holiday_date / 100;
int holiday_day = holiday_date % 100;
// 计算距离当前日期的天数
int days = (holiday_month - month) * 30 + (holiday_day - day);
// 如果距离当前日期的天数为负数,说明该节假日已经过去了,不考虑
if (days < 0) {
continue;
}
// 如果距离当前日期的天数比之前找到的距离最近节假日天数还要小,更新距离最近节假日天数的值
if (days < nearest_holiday_days) {
nearest_holiday_days = days;
}
}
// 输出距离最近节假日的天数
printf("距离最近节假日还有 %d 天\n", nearest_holiday_days);
return 0;
}
```
该代码将当前日期与指定的节假日日期数组进行比较,找到距离当前日期最近的一个节假日,并计算距离最近节假日的天数。需要注意的是,该代码中只考虑了以月日形式表示的节假日日期,如果节假日日期包含年份信息,需要进行额外的处理。
阅读全文