c语言某人从2020年1月1日起开始“三天打鱼两天晒网”,编写程序判断这个人在以后的某一天中是“打鱼”还是“晒网”
时间: 2024-10-28 08:12:00 浏览: 13
三天打鱼两天晒网C语言详细代码
在C语言中,我们可以创建一个变量来跟踪当前日期和这个人工作模式的周期,例如将一周分为5天工作("打鱼")和2天休息("晒网")。这里假设日期是以某种形式表示的,比如结构体或包含年、月、日的数组。以下是一种简单的方法来实现这个功能:
```c
#include <stdio.h>
#include <time.h> // 使用time和difftime处理时间
// 定义工作日和休息日
#define WORKING_DAYS 5
#define REST_DAYS 2
typedef struct {
int year;
int month;
int day;
} Date;
void is_fishing(Date current_date) {
// 获取当前日期到起始日期的总天数
time_t start_time = mktime(&(current_date.year * 12 + current_date.month - 1)); // 假设每个月的第一天是月初,忽略月份差异
time_t current_time = mktime(¤t_date); // 时间戳转换
long days_since_start = difftime(current_time, start_time) / (60*60*24); // 转换为天数
// 计算当前是在第几个周期内以及今天是周期内的第几天
int cycle = days_since_start / (WORKING_DAYS + REST_DAYS);
int working_day_in_cycle = days_since_start % (WORKING_DAYS + REST_DAYS);
// 根据余数判断是工作日还是休息日
if (working_day_in_cycle <= WORKING_DAYS) {
printf("今天是打鱼的日子。\n");
} else {
printf("今天是晒网的日子。\n");
}
}
int main() {
// 假设用户已经提供了一个Date类型的变量叫做person_date
is_fishing(person_date);
return 0;
}
```
这段代码首先计算出当前日期与起始日期之间的天数差,然后基于这个差值确定当前处于第几个周期,再根据周期内工作的天数来判断是“打鱼”还是“晒网”。
阅读全文