打鱼还是晒网.c

//  三天打鱼两天晒网

#include <stdio.h>

struct date {
	int year;
	int month;
	int day;
};

days(day)
	struct date day;
{
	static int day_tab[2][13] = 
			{{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,},    // 平年每月的天数
			 {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,}};   // 闰年每月的天数

	int i,leap;
	leap = day.year % 4 == 0 && day.year % 100 != 0 || day.year % 400 == 0;
					// 判断year为闰年还是平年,leap = 0 为平年,非0为闰年
	for (i = 1; i < day.month; i++)  // 计算本年中自1月1日起的天数
		day.day += day_tab[leap][i];

	return (day.day);
}

int main()
{
	struct date today;
	struct date term;
	int yearday,year,day;
	
	printf ("Enter year/month/day: ");
	scanf ("%d/%d/%d", &today.year, &today.month, &today.day);  // 输入当前日期
	term.month = 12;
	term.day = 31;
	for (yearday = 0, year = 1990; year < today.year; year++)
	{
		term.year = year;
		yearday += days(term);  // 计算从1990年至指定年的前一年共有多少天
	}
	
	yearday += days(today);     // 加上指定年中到指定日期的天数
	day = yearday % 5;
	if (day > 0 && day < 4)
		printf ("He was fishing at that day.\n");
	else
		printf ("He was sleeping at that day.\n");
	
	return 0;
}
 

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40383812/article/details/84627351
今日推荐