三天打鱼,两天晒网(C语言)

/**************三天打鱼,两天晒网***********/ 
/*
主要功能:某人从2010年的1月1日起,开始“三天打鱼,两天晒网”,输入一个日期,判断某人是在打鱼,还是在晒网
*/ 
#include<stdio.h>
int main()
{
int year,month,day,totaldays,i; //totaldays表示查询日期距2010年1月1日的总天数 
int leap=0; //初始化闰年个数为0 
int sum=0;
printf("input year,month,day:\n");
scanf("%d,%d,%d",&year,&month,&day); //输入要查询的年月日 
while(year<2010||day<0&&day>31) //判断输入的日期是否正确 
{
printf("data error,try again:\n");
scanf("%d,%d,%d",&year,&month,&day);
}
for(i=2010;i<year;i++) //计算从2010年到查询年份前一年的闰年个数 
{
if(i%400==0||i%4==0&&i%100!=0)
leap+=1;
}
switch(month) //计算该年查询月份之前的总天数,2月按28天计算 
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("month error:\n");break;
}
if(((year%4==0&&year%100!=0)||year%400==0)&&month>2) //如果查询的年份是闰年并且月份大于2月  
{
totaldays=(year-2010)*365+sum+day+leap+1; //总天数为年份差乘365加sum加leap加该年二月多余的一天 
printf("totaldays=%d\n",totaldays);
}
else
{
totaldays=(year-2010)*365+sum+day+leap; //该年为平年二月按28天计算,或者月份为1月,不必再加1 
printf("totaldays=%d\n",totaldays);

if((totaldays%5)>0&&(totaldays%5)<=3) //总天数对5取余,如果为0,4则晒网,如果为1,2,3则打鱼
printf("\nhe is fishing today\n");
else
printf("\nhe is sleeping today\n");
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值