//三天打鱼,两天晒网 从2010 01 01 开始 输入时间判断是在打鱼还是在晒网
/*
* 设计思路:本人运用 javaAPI类中的Date类子类 SimpleDateFormat处理时间
* 设置初始时间
* 正则表达式定义规则
* 键盘录入 时间
* 程序作出判断
*
**/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd");//定义规则
String s = "2010 01 01";
Date d= new Date();
d=(Date)sdf.parse(s);//把字符串内容转化成Data 2010 01 01
// System.out.println(d);
/*String s1 = sdf.format(d);//format格式化将Date根据规则格式化成String
System.out.println(s1);*/
System.out.println("请输入日期(2010 年1月1日后 格式 yyyy_MM_dd)");
Scanner sc= new Scanner(System.in);
String s2= sc.nextLine();
Date d2= new Date();
try {
d2=(Date)sdf.parse(s2);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("输入格式有误!");//给出提示
//e.printStackTrace();
System.exit(0);
}
long l =(d2.getTime()-d.getTime())/(1000*60*24*60);//用两个时间的毫秒值相减 获得天数
int i=(int )(l%5);
switch(i) {
case 1:{ System.out.println("今天打渔!"); break;}
case 2:{System.out.println("今天打渔!"); break;}
case 3:{System.out.println("今天打渔!"); break;}
case 4:{System.out.println("今天晒网!"); break;}
case 0:{}System.out.println("今天打渔!"); break;
}
}
}
升级版:(加入文件操作)使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。
/*
* 设计思路:本人运用 javaAPI类中的Date类子类 SimpleDateFormat处理时间
* 设置初始时间
* 定义规则
* 文件读入时间
* 程序作出判断
* 结果写入文件
**/
public class Demo1 {
public static void main(String[] args) throws ParseException, IOException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MM dd");//定义规则
String s = "2010 01 01";
Date d= new Date();
d=(Date)sdf.parse(s);//把字符串内容转化成Data 2010 01 01
// System.out.println(d);
//System.out.println("请输入日期(2010 年1月1日后 格式 yyyy_MM_dd)");
System.out.println("用文件读入 时间");
String s2= getFile();
Date d2= new Date();
try {
d2=(Date)sdf.parse(s2);
} catch (ParseException e) {
// TODO Auto-generated catch block
System.out.println("输入格式有误!");//给出提示
//e.printStackTrace();
System.exit(0);
}
long l =(d2.getTime()-d.getTime())/(1000*60*24*60);//用两个时间的毫秒值相减 获得天数
int i=(int )(l%5);
String outs = null;
switch(i) {
case 1:{ outs="今天打渔!";
System.out.println(outs); break;}
case 2:{ outs="今天打渔!";
System.out.println(outs); break;}
case 3:{ outs="今天打渔!";
System.out.println(outs); break;}
case 4:{ outs="今天晒网!";
System.out.println(outs); break;}
case 0:{ outs="今天晒网!";
System.out.println(outs); break;}
}
setFile(outs);
}
public static String getFile () { //文件读入函数
String str=null;//定义一个字符串类型变量str
try {//try代码块,当发生异常时会转到catch代码块中
//读取指定的文件
BufferedReader in = new BufferedReader(new FileReader("E:\\eclipes 英文版工作空间\\程序设计作业\\in.dat"));
str = in.readLine();
System.out.println(str);//输出str
in.close();
} catch (IOException e) {//当try代码块有异常时转到catch代码块
System.out.println("读取有误");
e.printStackTrace();//printStackTrace()方法是打印异常信息在程序中出错的位置及原因
}
return str;
}
public static void setFile (String s) throws IOException { //文件写入函数
byte[] bs = s.getBytes();//定义字节数组用来当作缓冲区
FileOutputStream fos=new FileOutputStream("E:\\eclipes 英文版工作空间\\程序设计作业\\out.txt");
try {
fos.write(bs);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//从缓冲区字节数组中以字节流形式取出
fos.close();//关闭读取流
File file=new File("E:\\\\eclipes 英文版工作空间\\\\程序设计作业\\\\out.txt");//创建文件对象
if(file.exists()){//if语句的条件,调用exists方法判断文件是否存在
System.out.println("文件成功读入到指定路径下");//若文件存在,则输出文件存在
}
else{//否则
System.out.println("输出文件不存在");//输出文件不存在
}
}
}
运行结果截图
打开TXT