时间日期工具类 LoaclDateTime
public class DateUtils {
/**
* 日期范围
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return {@code Stream<LocalDate>}
*/
public static Stream<LocalDate> datesRange(LocalDate startDate, LocalDate endDate) {
Predicate<LocalDate> dateInRange = d -> !d.isBefore(startDate) && !d.isAfter(endDate);
long numOfDaysBetween = ChronoUnit.DAYS.between(startDate, endDate);
return Stream.iterate(startDate, date -> date.plusDays(1))
.limit(numOfDaysBetween + 1)
.filter(dateInRange);
}
/**
* 获取时间间隔
*
* @param first 第一个
* @param second 第二个
* @return long
*/
public static long getBetween(LocalDate first,LocalDate second){
return second.until(first,ChronoUnit.DAYS) == 0 ? 1 : second.until(first,ChronoUnit.DAYS);
}
/**
* 根据时间间隔 获取 前几天
*
* @param localDate 当地日期
* @param between 之间
* @return {@code LocalDate}
*/
public static LocalDate getLastDays(LocalDate localDate,long between){
return localDate.plusDays(between);
}
/**
* 上个月的今天
* 如果为31 则变为上个月最后一天
*
* @param localDate 当地日期
* @return {@code LocalDate}
*/
public static LocalDate getLastMonth(LocalDate localDate){
return localDate.minus(1, ChronoUnit.MONTHS);
}
/**
* 上个月的今天
* 如果为31 则变为上个月最后一天
*
* @param localDate 当地日期
* @return {@code LocalDate}
*/
public static LocalDate getLastYear(LocalDate localDate){
return localDate.minus(1, ChronoUnit.YEARS);
}
/**
* 得到月第一天
*
* @param date 日期
* @return {@code LocalDate}
*/
public static LocalDate getMonthFirstDay(LocalDate date) {
return date.with(TemporalAdjusters.firstDayOfMonth());
}
/**
* 获得一年第一天
*
* @param date 日期
* @return {@code LocalDate}
*/
public static LocalDate getYearFirstDay(LocalDate date) {
return date.with(TemporalAdjusters.firstDayOfYear());
}
/**
* 获得一年最后一天
*
* @param date 日期
* @return {@code LocalDate}
*/
public static LocalDate getYearLastDay(LocalDate date){
return date.with(TemporalAdjusters.lastDayOfYear());
}
/**
* 得到月最后一天
*
* @param date 日期
* @return {@code LocalDate}
*/
public static LocalDate getMonthLastDay(LocalDate date){
return date.with(TemporalAdjusters.lastDayOfMonth());
}
/**
* 获取当前年总天数
*
* @param date 日期
* @return int
*/
public static int getCountNowDay(LocalDate date){
return date.lengthOfYear();
}
}