题解 | #计算日期到天数转换#
计算日期到天数转换
https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded
public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case String date = in.nextLine(); String s1 [] = date.split(" "); //分割成2012 12 31 String s2 [] = date.split(""); //分割成2 0 1 2 1 2 3 1 int month = Integer.parseInt(s1[1]); switch (month){ case 1: System.out.println(Integer.parseInt(s1[2])); break; //请记得每一个case语句内都要加break! case 2: System.out.println(Integer.parseInt(s1[2])+31); //case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。 break; case 3: if(isLeapYear(s1[0]) == true){//是闰年,且输入月份大于2月 System.out.println(31+29+Integer.parseInt(s1[2])); }else { System.out.println(31+28+Integer.parseInt(s1[2])); } break; case 4: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+Integer.parseInt(s1[2])); } break; case 5: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+Integer.parseInt(s1[2])); } break; case 6: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+Integer.parseInt(s1[2])); } break; case 7: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+Integer.parseInt(s1[2])); } break; case 8: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+31+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+31+Integer.parseInt(s1[2])); } break; case 9: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+31+31+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+31+31+Integer.parseInt(s1[2])); } break; case 10: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+31+31+30+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+31+31+30+Integer.parseInt(s1[2])); } break; case 11: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+31+31+30+31+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+31+31+30+31+Integer.parseInt(s1[2])); } break; case 12: if(isLeapYear(s1[0]) == true){ System.out.println(31+29+31+30+31+30+31+31+30+31+30+Integer.parseInt(s1[2])); }else { System.out.println(31+28+31+30+31+30+31+31+30+31+30+Integer.parseInt(s1[2])); } break; } } } public static boolean isLeapYear(String s1){ if((Integer.parseInt(s1)%100 == 0 && Integer.parseInt(s1)%400 == 0) || (Integer.parseInt(s1)%4 == 0 && Integer.parseInt(s1)%100 !=0)){ return true; } return false; }