C/C++程序题之三天打渔两天晒网

俗话说三天打渔两天晒网,某人从2010年1月1日开始打三天鱼,然后晒两天网,然后再打三天鱼,再晒两天网,周而复始,输入任意一天,求该天是打渔还是晒网 


#include <stdlib.h>

// 功能:从2010年1月1日起判断输入时期是否为打渔
// 输入: unsigned int  nYear 输入日期的年, unsigned int nMonth 输入日期的月,  unsigned int nDay 输入日期的日
// 输出:无
// 返回: 1 表示该天为打渔,0表示该天为晒网

unsigned int  IsTodayFishing (unsigned int  nYear, unsigned int nMonth, unsigned int nDay)
{
	if(nYear < 2010 || nMonth < 1 || nDay < 1)
		return -1;
	unsigned int days = (nYear - 2010) * 365;
	for(unsigned int year = 2010; year < nYear; year++)//从2010年起,判断期间有几个闰年
	{
		if(year%4 == 0 && year%100 != 0 || year%400 == 0)
		{
			days++;//闰年一次天数加1
		}
	}
	//判断当前年过了多少天
	unsigned int Day[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
	if(nYear%4 == 0 && nYear%100 != 0 || nYear%400 == 0)
		Day[2] = 29;
	for(unsigned int i = 0; i < nMonth; i++)
	{
		days += Day[i];
	}
	days += nDay;//共有多少天
	if(days%5 >= 1 && days%5 <= 3)
		return 1;
	return 0;	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值