java 1.8 stream 获取天数

//获取月中的天数

LocalDate startDate = LocalDate.now(ZoneId.of(location.getTimezone()));
LocalDate endDate = startDate.plusDays(days);

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM");

long distance = ChronoUnit.DAYS.between(startDate, endDate);
Map<String, Long> monthColumnSpan = Stream.iterate(startDate, d -> d.plusDays(1)).limit(distance + 1)
.collect(Collectors.groupingBy(day -> day.format(formatter) + day.getMonth().toString(), Collectors.counting()));

Map<String, Long> monthColumnSpanSorted = new LinkedHashMap<>();
monthColumnSpan.entrySet().stream().sorted(Map.Entry.comparingByKey())
.forEachOrdered(e -> monthColumnSpanSorted.put(e.getKey().substring(6) + " " + e.getKey().substring(0, 4), e.getValue()));

猜你喜欢

转载自www.cnblogs.com/payzulla/p/11923485.html