ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java获取日历格式的日期数据

2020-11-09 13:00:29  阅读:254  来源: 互联网

标签:LocalDate java localDate 日历 2020 date 格式 lastDayOfMonth TemporalAdjusters


  

需求是这样的,需要以整体的样子展示日历,比如,5 *7 或者 6* 7 的格式 

我需要把日期数据获取出来,所以我通过后台的得到需要的数据,分析需要3部分数据

 

 

  • 中间的一部分直接获取一个月的第一天和最后一天,
  • 前一部分和后一部分通过TemporalAdjusters对应的方法获取,
  • TemporalAdjusters.dayOfWeekInMonth 可以获取当前月的第X星期的星期几对应的日期,我们可以利用这个处理。

 

/**
     * <per>
     * <p>返回六行日历系统整月之外的日期区间  </p>
     * <per/>
     * @param date
     * @return java.time.LocalDate[]
     * @throws
     * @Description : TODO Return date range beyond the full month calendar system
     *                   TODO Demo :2020-10-01 -->  [2020-09-27, 2020-09-30, 2020-11-01, 2020-11-07]
     * @author Liruilong
     * @Date 2020/11/5 10:50
     **/
    public static LocalDate[] calendarOsToDay(LocalDate date) {
        LocalDate firstDayOfMonth = date.with(TemporalAdjusters.firstDayOfMonth());
        LocalDate lastDayOfMonth = date.with(TemporalAdjusters.lastDayOfMonth());
        LocalDate monthSaturday = date.with(TemporalAdjusters.dayOfWeekInMonth(6, DayOfWeek.SATURDAY));
        LocalDate monthSunday = date.with(TemporalAdjusters.dayOfWeekInMonth(0, DayOfWeek.SUNDAY));
        LocalDate[] localDate = new LocalDate[]{firstDayOfMonth,firstDayOfMonth,lastDayOfMonth,lastDayOfMonth};
       // 整月之前
        if (firstDayOfMonth.getDayOfWeek().getValue() != DayOfWeek.SUNDAY.getValue()){
            LocalDate lastMonth = LocalDate.of(date.getYear(),  date.getMonthValue() == 1 ? 12 :  date.getMonthValue() - 1  , 1);
            localDate[0] = monthSunday;
            localDate[1] = lastMonth.with(TemporalAdjusters.lastDayOfMonth());
        }
        // 整月之后
         int  day = (int)(localDate[3].toEpochDay() - localDate[0].toEpochDay());
        if (lastDayOfMonth.getDayOfWeek().getValue() != DayOfWeek.SATURDAY.getValue()){
            localDate[2] = date.with(TemporalAdjusters.firstDayOfNextMonth());
            localDate[3] = monthSaturday;
        }else if (day == 34){
            localDate[2] = date.with(TemporalAdjusters.firstDayOfNextMonth());
            localDate[3] =localDate[2].with(TemporalAdjusters.dayOfWeekInMonth(1, DayOfWeek.SATURDAY));
        }else if ( day == 27){
            localDate[2] = date.with(TemporalAdjusters.firstDayOfNextMonth());
            localDate[3] =localDate[2].with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.SATURDAY));
        }
        return localDate;
    }

 

标签:LocalDate,java,localDate,日历,2020,date,格式,lastDayOfMonth,TemporalAdjusters
来源: https://www.cnblogs.com/liruilong/p/13948009.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有