這題的思路 前面討論超多 所以不多提
就 想分享一下 剛發現的Switch的用法
如題 假設我要算 當年的天數 就得 用出 陣列 對照 月的天數
可以發現 30 跟 31 是重複的值
用Switch 可以 多個值 匹配同個結果
例如:
case 1: case 3: case 4:
System.out.println("1")
break; << 只要是 值是 1 或 3 或4 就貼出1
純粹方便
(建議自己打完再看)
code: >>>
import java.util.Scanner;
public class a263 {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
while(input.hasNextInt()){
int year1 = input.nextInt();
int month1 = input.nextInt();
int day1 = input.nextInt();
int year2 = input.nextInt();
int month2 = input.nextInt();
int day2 =input.nextInt();
System.out.println(Math.abs( year_day(year1,month1,day1) - year_day(year2,month2,day2) ));
}
}
public static int year_day (int year, int month, int day){
int ans = 0;
for (int i =1;i<year;i++) {
if (i%4==0&&i%100!=0||i%400==0){
ans+=366;
} else {
ans+=365;
}
}
for (int i=1;i<month;i++){
switch(i) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
ans +=31; break;
case 4: case 6: case 9: case 11:
ans +=30; break;
case 2:
if (year%4==0&&year%100!=0||year%400==0){
ans += 29;
} else {ans += 28;}break;
}
}
return ans+day;
}
}