题解 | #日期类#
日期类
https://www.nowcoder.com/practice/130aa2d7d1f5436b920229dca253893b
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int m = sc.nextInt(); while (m-- > 0) { int year = sc.nextInt(); int month = sc.nextInt(); int day = sc.nextInt(); Date date = new Date(year, month, day); date.add(); date.print(); } } private static class Date { private int year, month, day; private int[] days = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; private Date(int year, int month, int day) { if (isLeap(year)) days[2] = 29; this.year = year; this.month = month; this.day = day; } private boolean isLeap(int year) { return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0); } private void add() { day++; if (day > days[month]) { day = 1; month++; } if (month > 12) { month = 1; year++; } } private void print() { System.out.printf("%4d-%02d-%02d\n", year, month, day); } } }