utils011_时间常量类&获取当前月的天数等

package com.jingsong.constants;

import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.text.SimpleDateFormat;
import java.time.Month;
import java.util.Date;

/**
 * @author jingsong
 * @date 2022/5/3 23:41
 * @desc 时间的一些常量,项目中统一化使用可以降低代码冗余
 * @warn 本类中的几个方法可以获得当前月的天数等,方法名为大写;因获得的是常量,命名并无不妥
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DateConstants {
    public static final long MILLISECOND = 1L;
    public static final long SECOND = 1000 * MILLISECOND;
    public static final long MINUTE = 60 * SECOND;
    public static final long HOUR = 60 * MINUTE;
    public static final long DAY = 24 * HOUR;
    public static final long WEEK = 7 * DAY;
    public static final long MONTH_COMMON = 30 * DAY;
    public static final long YEAR_COMMON = 365 * DAY;

    /**
     * 获得当前月的时间
     *
     * @return 时间戳L
     */
    public static long MONTH_LOCAL() {
        return MONTH_LOCAL_DAYS() * DAY;
    }

    /**
     *  获得当前年的时间
     *
     * @return 时间戳L
     */
    public static long YEAR_LOCAL() {
        return YEAR_LOCAL_DAYS() * DAY;
    }

    public static int MONTH_LOCAL_DAYS(){
        String monthStr = new SimpleDateFormat("MM").format(new Date());
        int thisMonth = Integer.valueOf(monthStr);
        Month month = Month.JULY;
        for (Month each : Month.values()) {
            if (each.getValue() == thisMonth) {
                month = each;
                break;
            }
        }
        return month.length(isLeapYear());
    }

    public static int YEAR_LOCAL_DAYS(){
        return isLeapYear() ? 366 : 365;
    }

    /**
     * 判断是否为闰年
     *
     * @return
     */
    private static boolean isLeapYear() {
        String yearStr = new SimpleDateFormat("yyyy").format(new Date());
        int thisYear = Integer.valueOf(yearStr);
        return (thisYear % 4 == 0 && thisYear % 100 != 0) || (thisYear % 400 == 0);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值