仅用if,Switch-case语句实现,未涉及到算法,初学者的见解
判断一年是否是闰年的标准:
(1)可以被4整除,但是不能被100整除
或者
(2)可以被400整除
package com.java.demo;
import java.util.Scanner; //导入Scanner类包,从键盘接收输入字符
public class IsLeap {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int year = scanner.nextInt(); //输入年份
System.out.print("请输入月份(1~12):");
int month = scanner.nextInt(); //输入月份
System.out.print("请输入天数(1~31):");
int day = scanner.nextInt(); //输入天数
int temp = 0; //创建变量temp,用于判断年份是否为闰年
int Day = 0; //创建变量Day,用于计算一年的总共天数
if((year%4==0&&year%100!=0)||year%400==0){ //判断是否是闰年
temp = 1;
}
else{
temp = 0;
}
if(temp == 0){ //如果不是闰年,二月月份为28天。
if(month == 2){ //二月是平月,需要做特殊判断。
if(day > 28)
{
System.out.println("您的天数输入有误!请重新输入天数(1~28):");
int day2 = scanner.nextInt(); //重新输入天数(1~28)
Day = day2+31;
System.out.println("该年不是闰年,这一天为该年的第"+Day+"天!");
}
}
else{
switch (month) {
case 1:
Day = 0;
break;
case 2:
Day = 31;
break;
case 3:
Day = 31 + 28;
break;
case 4:
Day = 31 + 28 + 31;
break;
case 5:
Day = 31 + 28 + 31 + 30;
break;
case 6:
Day = 31 + 28 + 31 + 30 + 31;
break;
case 7:
Day = 31 + 28 + 31 + 30 + 31 + 30;
break;
case 8:
Day = 31 + 28 + 31 + 30 + 31 + 30 + 31;
break;
case 9:
Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31;
break;
case 10:
Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
break;
case 11:
Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
break;
case 12:
Day = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
break;
}
Day += day;
System.out.println("该年不是闰年,这一天为该年的第"+Day+"天!");
}
}
else{ //如果是闰年,二月月份为29天。
if(month == 2){ //同理,二月是平月,需要做特殊判断。
if(day > 29)
{
System.out.println("您的天数输入有误!请重新输入天数(1~29):");
int day2 = scanner.nextInt(); //重新输入天数(1~29)
Day = day2+31;
System.out.println("该年是闰年,这一天为该年的第"+Day+"天!");
}
}
else{
switch (month) {
case 1:
Day = 0;
break;
case 2:
Day = 31;
break;
case 3:
Day = 31 + 29;
break;
case 4:
Day = 31 + 29 + 31;
break;
case 5:
Day = 31 + 29 + 31 + 30;
break;
case 6:
Day = 31 + 29 + 31 + 30 + 31;
break;
case 7:
Day = 31 + 29 + 31 + 30 + 31 + 30;
break;
case 8:
Day = 31 + 29 + 31 + 30 + 31 + 30 + 31;
break;
case 9:
Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31;
break;
case 10:
Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30;
break;
case 11:
Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31;
break;
case 12:
Day = 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30;
break;
}
Day += day;
System.out.println("该年是闰年,这一天为该年的第"+Day+"天!");
}
}
}
}