源代码:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class yt {
public static void main(String[] args)throws IOException{
System.out.println("打鱼晒网判定");
System.out.println("从2010年1月1日起");
/**输入初始日期,并将初始日期写入in.txt文件中*/
printFile1();
/**读取in.txt文件中的数据,并将文件中的数据存入变量中*/
String line = null;
String a = null; String b = null; String c = null;
@SuppressWarnings("resource")
BufferedReader in = new BufferedReader(new FileReader("D:\\in.txt"));
//读取in.txt文件
/**
* in.txt文件内容为 year,month,day
*/
while((line = in.readLine())!=null)
{
a = line.split(",")[0];
b = line.split(",")[1];
c = line.split(",")[2];
//字符串切割,将分割后的字符串分别存入year,month,day中
int year = Integer.parseInt(a);//将String类型转换成int
int month = Integer.parseInt(b);
int day = Integer.parseInt(c);
int i,sum=0;
for(i=2010;i<year;i++)
{
if(i%4==0&&i%100!=0||i%400==0)
{sum+=366;}
else
{sum+=365;}
}
//计算年
for(i=1;i<month;i++)
{
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:{
sum+=31;
break;
}
case 4:
case 6:
case 9:
case 11:{
sum+=30;
break;
}
case 2:{
if(year%4==0&&year%100!=0||year%400==0)
sum+=29;
else
sum+=28;
}
}
}
//计算月
sum+=day;
//计算日
System.out.println("总天数day为:"+sum);
//计算天数的和
String flag;
if(sum%5==1||sum%5==2||sum%5==3)
{
System.out.println("打鱼");
flag = "打鱼";
}
else{
System.out.println("晒网");
flag = "晒网";
}
//判断打鱼还是晒网
/**将输出结果存入out.txt文件 */
printFile2(sum,flag);
}
}
//主方法结束
public static void printFile2(int sum,String flag) throws IOException {//抛出异常
BufferedWriter bw = null;
try {
File file = new File("D:/out.txt");
if (!file.exists()) {
file.createNewFile();
}
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8"));
bw.write("天数为"+sum+"状态为"+flag);
//将结果写入文件
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//printFile2方法,旨在将输出结果存入out.txt
public static void printFile1() throws IOException {
BufferedReader buff;
System.out.println("请输入year的值");
buff = new BufferedReader(new InputStreamReader(System.in));
String str = buff.readLine();
int year = Integer.parseInt(str);
System.out.println("year="+year);
System.out.println("请输入month的值");
buff = new BufferedReader(new InputStreamReader(System.in));
String str1 = buff.readLine();
int month = Integer.parseInt(str1);
System.out.println("month="+month);
System.out.println("请输入day的值");
buff = new BufferedReader(new InputStreamReader(System.in));
String str2 = buff.readLine();
int day = Integer.parseInt(str2);
System.out.println("day="+day);
//输入日期
BufferedWriter bw = null;
try {
File file = new File("D:/in.txt");
if (!file.exists()) {
file.createNewFile();
}
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),"utf-8"));
bw.write(year+","+month+","+day+",");
//将输入日期写入文件
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
//printFile方法,旨在将输入数据存入in.txt
}
程序流程图: