三天打鱼两天晒网(java)

题目要求: 113中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。

  基本要求: 1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
  提高要求:  1.输入数据的正确性验证。
  2.使用文件进行数据测试。如将日期20100101  20111214  等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。

package 三天打鱼两天晒网;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Example {
public static void main(String[] args) throws Exception {
Scanner in = new Scanner(System.in);
System.out.print(“请输入年-月-日:”);
String s=in.next();//定义变量s记录输入的日期
//根据’-‘截取日期的年月日
String[] sn=s.split(“-“);//定义数组sn记录截取的年月日
int year=Integer.parseInt(sn[0]);
int month=Integer.parseInt(sn[1]);
int date=Integer.parseInt(sn[2]);
String path=”^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))$”;
Pattern p=Pattern .compile(path);//实例化Pattern
Matcher m=p.matcher(s);//验证字符串内容是否合法
if(m.matches() )//使用正则验证
{
System.out.println(“输入日期合法”);
System.out.println(“从2010-01-01日起到”+s+”共经过了:”+Alldays(year,month,date)+”天”);
judge(Alldays(year,month,date));
}
else System.out.println(“输入日期不合法,请输入合法日期”);
//将日期写到in.txt文件中
BufferedWriter w=new BufferedWriter(new FileWriter(“E://程序设计方法学//src//三天打鱼两天晒网//in.txt”,true));
w.write(s);
w.newLine();//写入一个换行符
w.close();
//将结果保存到out.txt文件中
BufferedWriter w1=new BufferedWriter(new FileWriter(“E://程序设计方法学//src//三天打鱼两天晒网//out.txt”,true));
w1.write(str);
w1.newLine();//写入一个换行符
w1.close();
}
//判断打渔还是晒网
static String str;//记录打渔还是晒网
public static void judge(int days){
int a=days%5;
if(a==1||a==2||a==3)
{
System.out.println(“他在打渔”); str=”打渔”;}
else {System.out.println(“他在晒网”);str=”晒网”;}
}
//判断闰年的标准
public static boolean judge1(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return true;
else return false;
}
//计算总共的天数
public static int Alldays(int year,int month,int date){
int yeardays=0;//定义yeardays变量保存整年的总天数
int monthdays=0;//定义monthdays变量保存从1月到输入月份的总天数
for (int i=2010;i

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值