题解 | #打印日期#
打印日期
https://www.nowcoder.com/practice/b1f7a77416194fd3abd63737cdfcf82b
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[][] a = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
//当年数不能被100整除时,若其能被4整除或400整除时,则为闰年
while (in.hasNextInt()) { // 注意 while 处理多个 case
int year = in.nextInt();
int _day = in.nextInt();
PrintDate(a,_day,year);
}
}
//判断输入的年份是否是闰年
public static boolean IsRunYear(int year) {
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
return true;
}
return false;
}
//根据年份,第几天等信息打印日期
public static void PrintDate(int[][] a, int _day, int year) {
int j = IsRunYear(year) ? 1 : 0;
int month = 0;
for (int i = 0 ; i < a[0].length ; ++i) {
if (_day > a[j][i]) {
_day = _day - a[j][i];
} else {
month = i;
break;
}
}
System.out.println(year + "-" + (month < 10 ? "0" + month : month) + "-" +(_day < 10 ? "0" + _day : _day));
}
}

查看13道真题和解析