三天打渔,两天

欢迎浏览新人不吃葱花香菜的小白菜的博客

注册CSDN也有一段时间了,但是对这个的关注却很少,这次也刚好是一个逼自己锻炼的机会。希望可以通过自己的博客来记录自己的“成长历程”!


题目:
中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++语言/java/python实现程序解决问题。
要求:
基本要求:1.程序风格良好(使用自定义注释模板),提供友好的输入输出。
提高要求:1.输入数据的正确性验证。
2.使用文件进行数据测试。如将日期 20100101 20111214 等数据保存在in.txt文件中,程序读入in.dat文件进行判定,并将结果输出至out.txt文件。
总结:
这次只完整解决了基本要求和提高要求中的第一个。对输入输出流这方面理解还是不够透彻,对文件输入输出这块儿只完成了输出部分,输入部分虽然明白是怎样的道理,就是写不出来,代码改不过来。希望后面可以解决
在解决过程中,采用了string.split 方法分隔字符串。用interger.parseInt将String字符类型数据转换为Integer整型数据。
程序流程图:
这里写图片描述

这里写代码片

package shoter;

import java.io.*;
import java.util.Scanner;

public class Main39 {
public static void main (String args[]) throws Exception{
System.out.println(“请输入一个日期,格式如:2010/01/01”);
Scanner sc=new Scanner(System.in);
// System.setIn(new FileInputStream(“in.txt”));
int d[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
while (sc.hasNext()){
String s=sc.next();
int days=0;
int year,month,day;
String[] str=s.split("/");//使用split方法分隔字符串
year=Integer.parseInt(str[0]);//将String字符类型数据转换为Integer整型数据
month=Integer.parseInt(str[1]);
day=Integer.parseInt(str[2]);
System.setOut(new PrintStream(“out.txt”));
if(year<2010 || month<1 ||month>12 || day<0||day>31){
System.out.println(“您输入的数据不符合要求,请重新输入”);
continue;//只跳出本次循环,不影响后续操作
}
if(year%4000||(year%100!=0&&year%40)&&month>2){
days++;
}

这里写代码片
	 for(int i=2010;i<year;i++){
		 days=days+365;
		 if(year%400==0||(year%100!=0&&year%4==0)&&month>2){
			 days++;
		 }
	 }//年循环累计
	 for(int i=0;i<month;i++){
		 days+=d[i];
	 }//月循环累计
	 days+=day;//天循环累计
	 
 System.setOut(new PrintStream("out.txt"));
	// BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	 
	if(days%5==1 || days%5==2 || days%5==3 ){
		
		System.out.println("打渔");
	}
	else {
		System.out.println("晒网");
	}
}
sc.close(); 

}
}

测试结果:

这里写图片描述
这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值