public static void main(String[] args) {
        TimeParam startTime = new TimeParam().getInstance(aopBase.getStartTime());         TimeParam endTime = new TimeParam().getInstance(aopBase.getStartTime());         List<LocalDate> localDateList =         TimeParam.getAllDatesInTheDateRange(LocalDate.of(startTime.getYear(),         startTime.getMonth(), startTime.getDay()), LocalDate.of(endTime.getYear(),         endTime.getMonth(), endTime.getDay()));
        if (CollectionUtils.isNotEmpty(localDateList)) {
            localDateList.forEach(System.out::println);
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
 * @author LiuQi
 * @version 1.0
 * @data 2022/12/8 15:07
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class TimeParam
    private Integer year;
    private Integer month;
    private Integer day;
    public TimeParam getInstance(String time)
        String replaceAll = time.replaceAll("-", "");
        Integer year = Integer.parseInt(replaceAll.substring(0, 4));
        Integer month = Integer.parseInt(replaceAll.substring(4, 6));
        Integer day = Integer.parseInt(replaceAll.substring(6,8));
        TimeParam build = this.builder()
                .year(year)
                .month(month)
                .day(day)
                .build();
        return build;
     * 根据传入的日期,获取时间区间中所有的日期
     * @param startDate 开始日期
     * @param endDate 结束日期
    public static List<LocalDate> getAllDatesInTheDateRange(LocalDate startDate, LocalDate endDate) {
        List<LocalDate> localDateList = new ArrayList<>();
        if (startDate.isAfter(endDate)) { // 开始时间必须小于结束时间
            return null;
        while (startDate.isBefore(endDate)) {
            localDateList.add(startDate);
            startDate = startDate.plusDays(1);
        localDateList.add(endDate);
        return localDateList;
     * 过滤重复对象
     * @param keyExtractor
     * @return
     * @param <T>
    public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
        Map<Object, Boolean> hashMap = new ConcurrentHashMap<>();
        return result -> hashMap.putIfAbsent(keyExtractor.apply(result), Boolean.TRUE) == null;
				
欢迎关注博客主页:https://blog.csdn.net/u013411339 欢迎点赞、收藏、留言 ,欢迎留言交流!本文由【王知无】原创,首发于 CSDN博客!本文首发CSDN论坛,未经过官方和本人允许,严禁转载! 本文是对《【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)》的面试部分补充。 硬刚大数据系列文章链接: 2021年从零到大数据专家的学习指南(全面升级版) 2021年从零到大数据专家面试篇之Hadoop/HDFS/Yarn篇 --入参表(小表) CREATE table public.test1(id int,name varchar,record_time timestamp,place_id int); --日志记录表(大表) CREATE table public.test(id int,name varchar,record_time timestamp,place_id int); INSERT INTO public.test1 (id,name,record_time,pla.
原时间段:08:00-10:00,17:00-18:00,09:00-13:00,12:00-15:00,17:00-18:00,09:00-13:00 处理后:08:00-15:00,17:00-18:00 public static void main(String[] args) { String str = "08:00-10:00,17:00-18:00,09:00-1...
      几天前遇到这么一个问题:有一个文件记录大量用户的上网记录,要求合并这些信息统计出每个用户的上网时间段。文件的记录如下: 用户1 开始时间9:15结束时间9:18 用户3 开始时间8:22结束时间8:45 用户1 开始时间9:10结束时间9:16 用户2 开始时间8:31结束时间8:52 用户1 开始时间10:23结束时间10:47 用户1 开始时间9:22结束时间9:... * @return public static List<Map<String, Date>> getTimePeriodListDumplictcatePeriod(List<Map<String, Date>> periodList) { List<Map<String * 合并时间段去掉重复的 * 时间合并 12:00:00----13:00:00 & 12:30:00 --- 14:00:00 =====》 12:00:00----14:00:00 * @param usertime public static void unionTime(List&... 0、Redis对象介绍 Redis的键值都是用对象表示的,新建键值时,每次都会至少创建两个对象:键对象、值对象。 Redis对象redisObject定义如下: typedef struct redisObject { unsigned type:4; // 对象类型, string、list、hash、 “拉勾上吊一百年不匹配!!!”,”BOSS直聘日夜没反应!!!” 题目范围涵盖我最近遇到的笔试题和面谈的(CSS/JS/HTTP/Node/Hybrid/Vue/NG/React) emm…..这里不列举哪些公司了, 若是你完整的阅读一...
在项目做的一些站点会涉及时间格式的转换,比如,优惠券的有效期,或者资讯类文章的发表时间等,因从后台传过来的时间是时间戳,需要进行转换,所以在这里进行总结记录下 以及去重的处理 1.将时间戳转换成时间日期的形式 时间为毫秒数时(毫秒数转换成时间格式:先乘以1000) /* 实现倒计时 */ countTime(timeend毫秒数) { /* 计算总的剩余秒数 */ var ti...
2020/05/05-2020/05/09的08:00-9:30 2020/05/06-2020/05/12的08:30-12:30 2020/05/10-2020/05/17的11:00-14:00 合并去重完之后: 2020/06/05 08:00-9:30 2020/06/06-2020/06/09 08:00-12:30 2020/06/10-2020/06/12 08:30-14:00 2020/06/13-2020/06/17 11:00
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; public class DateUtil { private static final String pattern = "yyyyMMdd"; private static final DateTimeFormatter dateFormat = Da