Java 8 获取本(天周月季度年)的开始、结束时间

Java 8 获取本(天周月季度年)的开始、结束时间

  • 话不多说,直接上代码
    • Java获取本周的开始时间与结束时间
    • Java获取本月的开始时间与结束时间
    • Java获取本季度的开始时间与结束时间
    • Java获取本年的开始时间与结束时间
    • 结束语

话不多说,直接上代码

在上之前还是先简单的介绍一下哈:很多时候项目中我们都会遇到获取特定时间日期的问题,例如:获取当天、本周、本月、本季度、本年的开始时间月结束时间等。当然使用之前的 java.util 包中的 DateCalendar 类进行计算也是可以获得的,但是比较的繁琐,不是难;那么在 Java 8java.time 包中为我们提供了诸如:LocalDate LocalDateTime 等一系列易用的、操作时间日期的类, 那么我们 “何乐而不用” 呢?

Java获取本周的开始时间与结束时间

代码片.

/**
 * @Author: umizhang
 * @Title: getFirstDayOfWeek
 * @Description TODO 获取本周的第一天或最后一天
 * @Date: 2019/7/23 10:59
 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
 * @return: java.lang.String
 * @Exception:
 */
public static String getStartOrEndDayOfWeek(LocalDate today, Boolean isFirst){
    LocalDate resDate = LocalDate.now();
    if (today == null) {
        today = resDate;
    }
    DayOfWeek week = today.getDayOfWeek();
    int value = week.getValue();
    if (isFirst) {
        resDate = today.minusDays(value - 1);
    } else {
        resDate = today.plusDays(7 - value);
    }
    return resDate.toString();
}

Java获取本月的开始时间与结束时间

代码片.

/**
 * @Author: umizhang
 * @Title: getStartOrEndDayOfMonth
 * @Description TODO 获取本月的第一天或最后一天
 * @Date: 2019/7/23 11:50
 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
 * @return: java.lang.String
 * @Exception:
 */
public static String getStartOrEndDayOfMonth(LocalDate today, Boolean isFirst){
    LocalDate resDate = LocalDate.now();
    if (today == null) {
        today = resDate;
    }
    Month month = today.getMonth();
    int length = month.length(today.isLeapYear());
    if (isFirst) {
        resDate = LocalDate.of(today.getYear(), month, 1);
    } else {
        resDate = LocalDate.of(today.getYear(), month, length);
    }
    return resDate.toString();
}

Java获取本季度的开始时间与结束时间

代码片.

/**
 * @Author: umizhang
 * @Title: getStartOrEndDayOfQuarter
 * @Description TODO 获取本季度的第一天或最后一天
 * @Date: 2019/7/23 13:46
 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
 * @return: java.lang.String
 * @Exception:
 */
public static String getStartOrEndDayOfQuarter(LocalDate today, Boolean isFirst){
    LocalDate resDate = LocalDate.now();
    if (today == null) {
        today = resDate;
    }
    Month month = today.getMonth();
    Month firstMonthOfQuarter = month.firstMonthOfQuarter();
    Month endMonthOfQuarter = Month.of(firstMonthOfQuarter.getValue() + 2);
    if (isFirst) {
        resDate = LocalDate.of(today.getYear(), firstMonthOfQuarter, 1);
    } else {
        resDate = LocalDate.of(today.getYear(), endMonthOfQuarter, endMonthOfQuarter.length(today.isLeapYear()));
    }
    return resDate.toString();
}

Java获取本年的开始时间与结束时间

代码片.

/**
 * @Author: umizhang
 * @Title: getStartOrEndOfYear
 * @Description TODO 获取本年的第一天或最后一天
 * @Date: 2019/7/23 13:48
 * @Param: [today, isFirst: true 表示开始时间,false表示结束时间]
 * @return: java.lang.String
 * @Exception:
 */
public static String getStartOrEndDayOfYear(LocalDate today, Boolean isFirst){
    LocalDate resDate = LocalDate.now();
    if (today == null) {
        today = resDate;
    }
    if (isFirst) {
        resDate = LocalDate.of(today.getYear(), Month.JANUARY, 1);
    } else {
        resDate = LocalDate.of(today.getYear(), Month.DECEMBER, Month.DECEMBER.length(today.isLeapYear()));
    }
    return resDate.toString();
}

结束语

LZ 这里只做抛砖引玉的事情,更多的功能等你去尝试!当然 Java 8 中的也就是 java.time 包中的一些列类与接口功能远远不止这些,只要运用的恰当,就能在你写的代码中如鱼得水;不仅代码简洁漂亮、而且更重要的是能很方便的实现更多的功能!!!

你可能感兴趣的:(Java,编程基础(原),java,8,utils)