加强switch
加强switch
请看下面的代码:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import java.util.Scanner;
// 根据输入判断是闰年还是平年,并且得到输入月份的天数。等其它。。。。。。
public class Test {
public static void main(String[] args) {
System.out.println("******************欢 迎 使 用 万 年 历******************");
Scanner input = new Scanner(System.in);
System.out.print("\n请选择年份: ");
int year = input.nextInt();
System.out.print("\n请选择月份: ");
int month = input.nextInt();
System.out.println();
int days = 0; // 存储当月的天数
boolean isRn;
/* 判断是否是闰年 */
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { // 判断是否为闰年
isRn = true; // 闰年
} else {
isRn = false;// 平年
}
if (isRn) // 省略了{}
System.out.println(year + "\t闰年");
else // 省略了{}
System.out.println(year + "\t平年");
/* 计算该月的天数 */
/*
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isRn) {
days = 29;
} else {
days = 28;
}
break;
default:
days = 30;
break;
}
System.out.println(month + "\t共" + days + "天");
*/
/* 计算输入的年份之前的天数 */
int totalDays = 0;
for (int i = 1900; i < year; i++) {
/* 判断闰年或平年,并进行天数累加 */
if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判断是否为闰年
totalDays = totalDays + 366; // 闰年366天
} else {
totalDays = totalDays + 365; // 平年365天
}
}
System.out.println("输入年份距离1900年1月1日的天数:" + totalDays);
/* 计算输入月份之前的天数 */
int beforeDays = 0;
for (int i = 1; i <= month; i++) {
switch (i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isRn) {
days = 29;
} else {
days = 28;
}
break;
default:
days = 30;
break;
}
if (i < month) {
beforeDays = beforeDays + days;
}
}
totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数
System.out.println("输入月份距离1900年1月1日的天数:" + totalDays);
System.out.println("当前月份的天数:" + days);
}
}
![](https://pic002.cnblogs.com/images/2010/171363/2010121920454767.gif)