中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
package 三天打鱼两天晒网;
import java.util.Scanner;;
public class Fishing_Or_Sunning_net {
public static void Fishing_Or_Sunning_Net(int year,int month,int day) {
boolean flag = true;
if(year < 2000) {
flag = false;
}
if(month > 13 || month < 1) {
flag = false;
}
if(month==1 || month==3 || month ==5 || month==7 || month==8 || month==10 || month ==12) //小月
{
if(day<1 || day>31) {
flag=false;
}
}
else if(month==2) //二月
{
if(day<=0 || day>=30) {
flag=false;
}
}
else //大月
{
if(day<=0 || day>=31) {
flag=false;
}
}
if(flag == false) {
System.out.println("输入错误!!请重新输入正确的日期值!");
}
else {
Get_Result(Compute_Total_Days(year,month,day)); //Compute_Days计算天数 Get_Result判断状态
}
}
public static boolean Wether_RunNian(int year) { //闰年判断函数
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { //四年一闰百年不闰四百再闰
return true;
}
else {
return false;
}
}
public static int Compute_Total_Days(int year,int month,int day) { //计算总天数
int days = 0;
for(int i = 2010;i < year;i ++) {
if(Wether_RunNian(i) == true) {
days = days + 366;
}
else {
days = days + 365;
}
}
days = days + Compute_Inneryear_Days(year,month,day);
return days;
}
public static int Compute_Inneryear_Days(int year,int month,int day) { //计算用户提供年的年内天数
int days = day;
for(int i = 1;i <= month;i ++) {
days = days + Compute_Month_Days(year,i);
}
return days;
}
public static int Compute_Month_Days(int year,int month) { //计算用户提供的年数并判断是否闰年,并进一步判断月份内的天数
int Not_RunNian_Month_days[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int RunNian_Month_days[] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
if(Wether_RunNian(year) == true) {
return RunNian_Month_days[month];
}
else {
return Not_RunNian_Month_days[month];
}
}
public static void Get_Result(int days) { //前三天打鱼后两天晒网
System.out.println(days);
int x = days % 5;
if (x >= 1 && x <= 3) {
System.out.println("这一天在打鱼!");
}
if (x==0 || x== 4){
System.out.println("这一天在晒网!");
}
}
public static void main(String[] args) {
@SuppressWarnings("resource") //忽略警告
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份:");
int month = scanner.nextInt();
System.out.println("请输入日期:");
int day = scanner.nextInt();
Fishing_Or_Sunning_Net(year,month,day);
}
}
代码实现比较简单,分享给大家。