“三天打鱼两天晒网的java程序

中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。

程序运行结果截图:
这里写图片描述

源代码:
package cn.zuoye1;
import java.io.*;
public class Test1 {
public static void main(String[] args) throws Exception{
FileReader reader=new FileReader(“C:\Users\admin\Desktop\in.txt”);
BufferedReader br=new BufferedReader(reader);
FileWriter writer=new FileWriter(“C:\Users\admin\Desktop\out.txt”);
BufferedWriter bw=new BufferedWriter(writer);
int date=0;
//int Sumday=0;
String str=null;
while ((str=br.readLine())!=null) {
date=Integer.valueOf(str);//将文件中的时间读入
int y=date/10000;//年份
int m=date%10000/100;//月份
int d=date%100;//日期
if(SumDay(y,m,d)%5==0||SumDay(y,m,d)%5==1||SumDay(y,m,d)%5==2)
{System.out.println(str+”日在打鱼”+”距离开始日总天数为:”+SumDay(y,m,d)+”天”);
bw.write(str+”在打鱼”+”距离开始日总天数为:”+SumDay(y,m,d)+”天”);
bw.newLine(); }
else
{System.out.println(str+”日在晒网”+”距离开始日总天数为:”+SumDay(y,m,d)+”天”);
bw.write(str+”在晒网”+”距离开始日总天数为:”+SumDay(y,m,d)+”天”);
bw.newLine();}
}
br.close();
bw.close();
}

这里写代码片public static int Thisyearday(int y,int m,int d){
        int  i,sum=0;
        for(i=1;i<m;i++)//计算当前年份的总天数
        {
            switch(i){
            case 1:sum+=31;break;
            case 2:{if((i%4==0&&i%100!=0)||i%400==0)
                sum+=29;
            else {sum+=28;}
            };break;
            case 3:sum+=31;break;
            case 4:sum+=30;break;
            case 5:sum+=31;break;
            case 6:sum+=30;break;
            case 7:sum+=31;break;
            case 8:sum+=31;break;
            case 9:sum+=30;break;
            case 10:sum+=31;break;
            case 11:sum+=30;break;
            case 12:sum+=31;break;
            }
        }
        sum+=d;
        return sum;
    }
    public static int SumDay(int y,int m,int d){
        int i,sum=0,sumday=0;
        for(i=2010;i<y;i++)//计算相差整年的总天数
        {
            if((i%4==0&&i%100!=0)||i%400==0)
            {sum+=366;}
            else{sum+=365;}
        }
            sumday=sum+Thisyearday(y,m,d)-1;
      return  sumday;
    }
}

猜你喜欢

转载自blog.csdn.net/baidu_39241254/article/details/82227759