标题 三天打渔,两天晒网(java)
本次题目为中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用C或C++ 等语言实现程序解决问题。
(1)起始时间为2010年1月1日,计算相隔的总天数(闰年二月天数为29天)。
(2)求余1、2、3即为他在打渔,求余0、4即为他在晒网。
(3)数据测试阶段注意日期格式(例:20200316)。
1.流程图如下:
2.源代码。
package san;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int days=0;
int m[]={31,28,31,30,31,30,31,31,30,31,30,31};
int start_year=2010;
int start_month=1;
int start_day=1;
while(true){
Scanner input=new Scanner(System.in);
System.out.println("请输入日期:(例:2020 05 29)");
//输入年月日中间用空格隔开
int year=input.nextInt();
int month=input.nextInt();
int day=input.nextInt();
if(year%4==0&&year%100!=0||year%400==0){
m[1]=29;//判断年份是否为闰年 闰年二月的天数为29天
}
if((year>=2010)&&(month>=1&&month<=12)&&(day>=1&$(day<=m[month-1]))){
for(int i=2010;i<year;i++){
days=days+365;
if(year%4==0&&year%100!=0||year%400==0){
days++;//不是闰年二月天数加一
}
}
for(int i=0;i<month-1;i++){
days=days+m[i];
}
days=days+day;
//计算打渔还是晒网
if(days%5==1||days%5==2||days%5==3){
System.out.println("他在打渔。");
}
else{
System.out.println("他在晒网。");
}
break;
}
else{ System.out.println("输入的日期错误");
}
}
}
}