取得某天的开始时间和结束时间、取得某月的开始时间和结束时间

import java.time.LocalDate;
import java.time.LocalDateTime;

private static void testDay(LocalDateTime localDateTime){

        minOfDay(localDateTime);
        maxOfDay(localDateTime);
        minDayOfMonth(localDateTime);
        maxDayOfMonth(localDateTime);
    }

/**
     * 检查某一年是否为闰年
     * @param localDateTime
     * @return
     */
    private static boolean isLeapYear(LocalDateTime localDateTime){
        LocalDate localDateOther = LocalDate.of(localDateTime.getYear(),2,28);
        return isLeapYear(localDateOther);
    }


    private  static boolean isLeapYear(LocalDate localDate){
        LocalDate localDateNew = localDate.plusDays(1L);
        int dayOfMonth = localDateNew.getDayOfMonth();
        if(dayOfMonth == 29){
//                表明是闰年
            return true;
        }else {
            if(dayOfMonth == 1){
//                表明不是闰年
                return false;
            }
        }
        return false;
    }


 /**
     * 根据指定的参数组装数据
     * @return
     */
    private static LocalDateTime assemble(int year,int month,int day,int hour,int min,int second){
        return LocalDateTime.of(year,month,day,hour,min,second);
    }


    private static void print(String  functionName,LocalDateTime localDateTime){
        StringBuilder sb  = new StringBuilder(functionName);
        sb.append(" : ");
        sb.append(localDateTime);
        sb.append(" : ");
        sb.append(localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli());
        System.out.println(sb.toString());
    }


    /**
     * 获取当前时间的开始时间
     * @param localDateTime
     */
    private static void minOfDay(LocalDateTime localDateTime){
        LocalDate localDate = localDateTime.toLocalDate();
        LocalDateTime localDateTimeNew = assemble(localDate.getYear(),localDate.getMonthValue(),localDate.getDayOfMonth(),0,0,0);
        print("minOfDay",localDateTimeNew);
    }


    /**
     * 获取当前时间的最大时间
     * @param localDateTime
     */
    private static void maxOfDay(LocalDateTime localDateTime){
        LocalDate localDate = localDateTime.toLocalDate();
        LocalDateTime localDateTimeNew = assemble(localDate.getYear(),localDate.getMonthValue(),localDate.getDayOfMonth(),23,59,59);
        print("maxOfDay",localDateTimeNew);
    }

    /**
     * 获取当前月份的开始时间
     * @param localDateTime
     */
    private static void minDayOfMonth(LocalDateTime localDateTime){
        LocalDate localDate = localDateTime.toLocalDate();
        LocalDateTime localDateTimeNew = assemble(localDate.getYear(),localDate.getMonthValue(),1,0,0,0);
        print("minDayOfMonth",localDateTimeNew);
    }

    /**
     * 获取当前月份的结束时间
     * @param localDateTime
     */
    private static void  maxDayOfMonth(LocalDateTime localDateTime){
        int monthLength = 0;
        LocalDate localDate = localDateTime.toLocalDate();
        if(isLeapYear(localDateTime)){
            monthLength = localDate.getMonth().length(true);
        }else {
            monthLength = localDate.getMonth().length(false);
        }
        LocalDateTime localDateTimeNew = assemble(localDate.getYear(),localDate.getMonthValue(),monthLength,23,59,59);
        print("maxDayOfMonth",localDateTimeNew);
    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值