“三天打鱼两天晒网”一只小小喵的尝试

首先得计算出时间,判断是否为闰年,再用总年数除5,得到余数若为0,1,2则为打鱼,若为3,4则为晒网。


#include<stdio.h>

int Net(int year,int month,int day);

void main()
{
int year,month,day;
FILE *fp1,*fp2;
    fp1=fopen("input.txt","rb");
fp2=fopen("output.txt","wb");
    fscanf(fp1,"%d %d %d",&year,&month,&day);
printf("从头文件input.txt当中读取的年月日为:%d-%d-%d\n",&year,&month,&day);
    fprintf(fp2,"从头文件input.txt当中读取的年月日为:%d-%d-%d\n",&year,&month,&day);
    printf("请输入一个日期:\n");
    scanf("%d %d %d",&year,&month,&day);
Net(year,month,day);
}
int Net(int year,int month,int day)
{
int n=0;  //代表闰年个数
int minus1; //代表月数之差
int L1; //2010年后到所在的天之间的天数
int C1,Q;
int sum;//代表某天之后,即从2010/01/01后的天数
int R;//R代表是求余数,余数为0,1,2代表打鱼,3,4代表晒网
/*判断是否为闰年,并计算其个数*/
int w;//计算闰年时使用的参数
FILE *fp1,*fp2;


    if((year<1)||(month<1||month>12)||(day<1||day>31))
printf("输入错误,请输入正确日期:\n");//判断输入日期是否正确
else
{


for(w=1;w<=year;w++)
{
   if(w%400==0||(w%4==0&&w%100!=0))
   n++;
}
printf("n:%d\n",n);//检查统计闰年个数是否成功
L1=(year-2010)*365+n-487;//487代表2010前的闰年个数
/*计算月份差*/


minus1=month-1;
switch(minus1)
{
case 0:
C1=0;
break;
case 1:
   C1=31;
break;
case 2:
C1=59;
break;
case 3:
C1=90;
break;
case 4:
C1=120;
break;
case 5:
C1=151;
break;
case 6:
C1=181;
break;
case 7:
C1=212;
break;
case 8:
C1=243;
break;
case 9:
C1=273;
break;
case 10:
C1=304;
break;
case 11:
C1=334;
break;
}
/*计算天数差*/
Q=day-1;
/*计算总天数后*/
sum=L1+C1+Q;
printf("year:%d\n",L1);//输出年份差天数
printf("month:%d\n",C1);//输出月份差天数
printf("day:%d\n",Q);//输出天数差天数
printf("sum:%d\n",sum);//输出总天数
R=sum%5;//求余,余数为0,1,2代表打鱼,3,4代表晒网
printf("%d\n",R);//检查统计求模是否成功
switch(R)
{
case 0:
printf("今天该打鱼\n");
    fprintf(fp2,"\n今天该打鱼\n\n");
break;
case 1:
printf("今天该打鱼\n");
    fprintf(fp2,"\n今天该打鱼\n\n");
break;
case 2:
printf("今天该打鱼\n");
    fprintf(fp2,"\n今天该打鱼\n\n");
break;
case 3:
printf("今天该晒网\n");
    fprintf(fp2,"\n今天该晒网\n\n");
break;
case 4:
printf("今天该晒网\n");
    fprintf(fp2,"\n今天该晒网\n\n");
break;
}
}
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值