【JAVA日期相关】判断当前为平年还是闰年

业务场景:对于可视化、报表开发中,经常会遇到像统计一段时间,比如一个月、每月每天等时间段的数据,同时也会伴有判断当前月份有多少天,诸如2月这种可变性的天数,就引出了所谓:判断当前为平年闰年

一、源码

所谓闰年,就是指 2 月有 29 天的那一年。闰年同时满足以下条件:
1.年份能被 4 整除。
2.年份若是 100 的整数倍,须被 400 整除,否则是平年。

例如,1900 年能被 4 整除,但是因为其是 100 的整数倍,却不能被 400 整除,所以是平年;而 2000 年就是闰年;1904 年和 2004 年、2008 年等直接能被 4 整除且不能被 100 整除,都是闰年;2014 是平年。

        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);//获取当前年份
        int month = calendar.get(Calendar.MONTH)+1;//获取当前月份
        int day = 0;
        boolean flag;
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            flag = true;// 闰年
        } else {
            flag = false;// 平年
        }
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                day = 31;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                day = 30;
                break;
            default:
                if (flag) {
                    day = 29;
                } else {
                    day = 28;
                }
                break;
        }

二、注意

2.1 Calendar 类下的 MONTH 月份

也是因为西方文化的原因,一年的第一个月是从“0”开始算起的,一年中12个月份分别是:“0-11”,12指的是下一年的一月份

calendar.set(2016,12,9);

SimpleDateFormat format=new SimpleDateFormat(“yyyy-MM-dd”);

String date=format.format(calendar.getTime());

获得的结果是:2017-01-09

所以 为 calendar 设置“月份(MONTH)”时需要 “-1”

通过 calendar 获取“月份(month)”时需要 “+1”

三、文章引申

关于JAVA中calendar.get(Calendar.XXXX)的问题---- 获取时间的问题
calender get方法_Calendar.get()方法— WEEK_OF_YEAR 、MONTH
MySQL----获取当前日期当月第一天,最后一天

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值