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