首页 > 技术文章 > 获取每周每月开始结束日期

Arthemis-z 2021-01-04 16:35 原文

/**
     * 获取指定日期所在周的周日日期(周日为开始,周六为结束)
     * @param date      指定日期的LocalDate格式数据
     * @return
     */
    public static Date getStartDayOfWeek(TemporalAccessor date) {
        TemporalField fieldIso = WeekFields.of(DayOfWeek.SUNDAY, 1).dayOfWeek();
        LocalDate localDate = LocalDate.from(date);
        localDate = localDate.with(fieldIso, 1);
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }
/**
     * 获取指定日期所在周的周六日期(周日为开始,周六为结束)
     * @param date      指定日期的LocalDate格式数据
     * @return
     */
    public static Date getEndDayOfWeek(TemporalAccessor date) {
        TemporalField fieldIso = WeekFields.of(DayOfWeek.SUNDAY, 1).dayOfWeek();
        LocalDate localDate = LocalDate.from(date);
        localDate = localDate.with(fieldIso, 7);
        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
    }
/**
     * 获取指定日期所在月的1号日期
     * @param date      指定日期
     * @return
     */
    public static LocalDate getStartDayOfMonth(LocalDate date) {
        return LocalDate.of(date.getYear(),date.getMonth(),1);
    }
/**
     * 获取指定日期所在月的最后一天日期
     * @param date      指定日期
     * @return
     */
    public static LocalDate getEndDayOfMonth(LocalDate date) {
        return date.with(TemporalAdjusters.lastDayOfMonth());
    }

PS:此博文仅做学习记录使用

推荐阅读