题解 | #计算日期到天数转换#
计算日期到天数转换
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;
}
}
查看1道真题和解析
