题解 | #计算日期到天数转换#
计算日期到天数转换
https://www.nowcoder.com/practice/769d45d455fe40b385ba32f97e7bcded
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int year = in.nextInt(); int month = in.nextInt(); int day = in.nextInt(); getResult(year, month, day); } } private static void getResult(int year, int month, int day) { //先统一按30天计算 int result = (month-1)*30 + day; for (int m = 1; m < month; m++) { //31天的月份,天数加1 if (Integer.toString(m).matches("[13578]") || m == 10) { result++; } if (m == 2) { //二月先按28天处理 result = result - 2; if (isLeap(year)) { //闰年二月29天,天数加1 result++; } } } System.out.print(result); } //闰年判断 private static boolean isLeap(int year) { if ((year%4 == 0 && year%100 != 0) || year%400 == 0) { return true; } return false; } }