题解 | #日期类#

日期类

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);
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
one_t:硕还是本?什么岗
点赞 评论 收藏
分享
头像
10-16 09:58
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务