获取某月有多少天

时间:2025-02-09 22:18:02

获取某月有多少天

今天在开发的过程中,有个地方需要对传来的天数进行判断,是否是某个月的最大的值。当我还在伸出左手边的拳头数那个月是31天,哪些是30天的时候,突然发现LocalDate中有个lengthOfMonth这个方法, 自认为这个代码写的很精致。

public static void main(String[] args) {
    LocalDate now = LocalDate.now();
    int lengthOfMonth = now.lengthOfMonth();
    System.out.println(lengthOfMonth);
}

可以输出:30天

来看看它是怎么实现的?

public int lengthOfMonth() {
    switch (month) {
        case 2:
            return (isLeapYear() ? 29 : 28);
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
        default:
            return 31;
    }
}

通过传入的月份,可以对应到当月的最大天数,并且可以判断是否是闰年来确定2月是29天还是28天。