成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

java 判斷兩個(gè)時(shí)間段是否重疊的案例

瀏覽:15日期:2022-08-27 10:00:46

最近業(yè)務(wù)上遇到需要判斷兩個(gè)時(shí)間段是否存在重疊的情況,網(wǎng)上找了不少代碼。大佬們的思路過于簡(jiǎn)潔了,有些理解不了。還只是個(gè)菜鳥碼農(nóng),還是多鍛煉鍛煉自己的思路。

思路很簡(jiǎn)單:定義一個(gè)時(shí)間段的概念,既然是時(shí)間段就包含起始時(shí)間和終止時(shí)間這兩個(gè)時(shí)間點(diǎn)。構(gòu)造方法要保證起始時(shí)間在終止時(shí)間之前,這樣才是一個(gè)有效的時(shí)間段概念。

為TimeSlot這個(gè)類定義四個(gè)比較先后順序的方法,分別為:小于、大于、小于等于、大于等于。畫張簡(jiǎn)單的時(shí)間線圖理解一下就明白了。當(dāng)整個(gè)時(shí)間段作為一個(gè)整體時(shí),只有時(shí)間段小于或大于另一個(gè)時(shí)間段時(shí),它們才沒有重疊的交集。

代碼如下,有什么錯(cuò)誤還請(qǐng)各位看官幫忙指出

package com.abc.common.util;import lombok.Data;import org.springframework.stereotype.Component;import java.time.LocalDateTime;/** * 日期工具類 * <p> * 使用LocalDateTime存取或判斷 * </p> * @see java.time.LocalDateTime * @date 2020-6-29 10:20:42 */@Componentpublic class DateUtil { /** * 判斷兩個(gè)時(shí)間段是否重疊 * @param slot1 * @param slot2 * @return */ public static boolean overlapped(TimeSlot slot1, TimeSlot slot2) { TimeSlot previous, next; previous = slot1.startTime.isBefore(slot2.startTime) ? slot1 : slot2; next = slot2.startTime.isAfter(slot1.startTime) ? slot2 : slot1; // 這里業(yè)務(wù)需要,允許時(shí)間點(diǎn)的重疊 // 例如某個(gè)時(shí)間段的起始時(shí)間:2020-06-29 00:00:00 // 和另一個(gè)時(shí)間段的終止時(shí)間:2020-06-29 00:00:00 // 它們倆可以有交點(diǎn)。如果不需要這種邏輯只把le改成lt // ,ge改成gt就可 return !(le(previous, next) || ge(previous, next)); } /** * 構(gòu)造一個(gè)時(shí)間段 * @param startTime * @param endTime * @return */ public static TimeSlot buildSlot(LocalDateTime startTime, LocalDateTime endTime) { return new TimeSlot(startTime, endTime); } /** * less equal * 小于等于 * @param prev * @param next * @return */ private static boolean le(TimeSlot prev, TimeSlot next) { return lt(prev, next) || next.endTime.isEqual(prev.startTime); } /** * greater equal * 大于等于 * @param prev * @param next * @return */ private static boolean ge(TimeSlot prev, TimeSlot next) { return gt(prev, next) || prev.endTime.isEqual(next.startTime); } /** * greater than * 大于 * @param prev * @param next * @return */ private static boolean gt(TimeSlot prev, TimeSlot next) { return prev.endTime.isBefore(next.startTime); } /** * less than * 小于 * @param prev * @param next * @return */ private static boolean lt(TimeSlot prev, TimeSlot next) { return next.endTime.isBefore(prev.startTime); } /** * 時(shí)間段類 */ @Data static class TimeSlot{ private LocalDateTime startTime; private LocalDateTime endTime; public TimeSlot(LocalDateTime startTime, LocalDateTime endTime) { if (startTime.isAfter(endTime)) {this.startTime = endTime;this.endTime = startTime; } else {this.startTime = startTime;this.endTime = endTime; } } }}

在業(yè)務(wù)代碼中調(diào)用:

// ... if (DateUtil.overlapped( DateUtil.buildSlot(beginTime, endTime), DateUtil.buildSlot(beginTime1, endTime1) )) { // 時(shí)間段有重疊,寫下重疊情況的業(yè)務(wù)代碼 }// ...

當(dāng)然也可以把TimeSlot這個(gè)類拎出來,那樣或許更方便。

補(bǔ)充知識(shí):Java計(jì)算Date類時(shí)間差的函數(shù)

我就廢話不多說了,大家還是直接看代碼吧~

public static String TimeDifference(long start, long end) { long between = end - start; long day = between / (24 * 60 * 60 * 1000); long hour = (between / (60 * 60 * 1000) - day * 24); long min = ((between / (60 * 1000)) - day * 24 * 60 - hour * 60); long s = (between / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); long ms = (between - day * 24 * 60 * 60 * 1000 - hour * 60 * 60 * 1000- min * 60 * 1000 - s * 1000); String timeDifference = day + '天' + hour + '小時(shí)' + min + '分' + s + '秒' + ms+ '毫秒'; return timeDifference; }

以上這篇java 判斷兩個(gè)時(shí)間段是否重疊的案例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色综合久久久久网| 日本伊人午夜精品| 首页综合国产亚洲丝袜| 亚洲成人原创| 国产日韩精品一区二区三区| 成人av在线看| 日韩欧美亚洲另类制服综合在线| 久久99国产精品久久| 欧洲在线/亚洲| 视频一区国产视频| 久久国产毛片| 日韩 欧美一区二区三区| 亚洲东热激情| 亚洲欧洲三级电影| 亚洲福利一区| 玉米视频成人免费看| 伊人久久综合| 亚洲精品国久久99热| 老鸭窝毛片一区二区三区| 亚洲v日本v欧美v久久精品| 久久国产高清| 无码av中文一区二区三区桃花岛| 久久激情中文| 亚洲电影一级黄| 久久精品成人| 六月丁香婷婷久久| 制服视频三区第一页精品| 国产成人亚洲综合a∨猫咪| 欧美一区二区三区爱爱| 欧美日韩国产另类不卡| 国产精品一区二区男女羞羞无遮挡 | 国产成人在线免费| 日韩精品一区二| 欧美福利精品| 亚洲精品高清视频在线观看| 一本一道久久a久久精品| 久久99精品国产.久久久久| 日韩区在线观看| 欧美三级黄美女| 亚洲一区二区av电影| 在线免费观看欧美| 天天影视色香欲综合网老头| 91.xcao| 午夜日韩视频| 午夜精品久久久久久久久| 91精品国产综合久久小美女| 91免费版pro下载短视频| 一区二区在线观看视频| 欧美日韩一区二区在线观看| 99九九99九九九视频精品| 亚洲欧美日韩国产综合在线| 色综合久久88色综合天天| 国产很黄免费观看久久| 中文字幕欧美激情一区| 亚洲专区一区二区三区| 国产资源精品在线观看| 欧美国产成人精品| 久久综合影视| 99久久久精品| 亚洲国产精品久久不卡毛片| 欧美丰满少妇xxxxx高潮对白| 欧美日韩99| 日本不卡一区二区三区高清视频| 亚洲精品一区二区三区蜜桃下载| 亚洲欧洲日本mm| 麻豆成人久久精品二区三区小说| 日韩精品一区二区三区四区视频| 中文av一区特黄| 久久久一本精品99久久精品66| 韩国女主播一区| 国产精品美女久久久久久久| 久久免费高清| 成人福利在线看| 亚洲精品乱码久久久久| 欧美精品免费视频| 亚洲国产欧美日韩| 精品午夜久久福利影院| 国产精品久久看| 欧美色综合网站| 国产精品一区二区三区四区五区| 国产成人一区在线| 亚洲国产另类av| 久久天天做天天爱综合色| 另类激情亚洲| 99re视频精品| 日本午夜精品一区二区三区电影| 久久久久久9999| 久久午夜电影| 色综合久久综合中文综合网| 日韩电影在线免费看| 中文字幕第一页久久| 欧美日韩在线观看一区二区 | 国产精品v亚洲精品v日韩精品| 视频一区二区欧美| 国产色产综合产在线视频| 久久免费黄色| 好吊日精品视频| 国产在线精品视频| 亚洲国产精品久久久男人的天堂| 精品国产1区二区| 色婷婷久久综合| 激情视频一区二区三区| 国产精品自拍在线| 五月天欧美精品| 亚洲欧洲日韩综合一区二区| 日韩三区在线观看| 91久久精品一区二区三| 亚洲动漫精品| 99综合影院在线| 蜜臀久久99精品久久久久久9| 欧美精彩视频一区二区三区| 欧美精品丝袜中出| 欧美亚洲在线| 亚洲国产精品久久久久久女王| 成人丝袜18视频在线观看| 午夜精品福利一区二区三区蜜桃| 国产精品久久免费看| 精品乱人伦小说| 欧美日韩综合不卡| 美日韩精品免费| 亚洲国产合集| 91女厕偷拍女厕偷拍高清| 国产在线不卡一卡二卡三卡四卡| 亚洲成在线观看| 最新成人av在线| 久久综合色综合88| 91精品国产日韩91久久久久久| 久久免费99精品久久久久久| 亚洲精品裸体| 国内精品福利| 国产一区二区三区四区五区入口 | 亚洲欧美日韩国产一区| 欧美久久成人| 成人网在线播放| 国产美女在线精品| 免费在线观看成人| 亚洲国产精品人人做人人爽| 最近日韩中文字幕| 国产精品午夜免费| 日韩视频123| 欧美高清www午色夜在线视频| 色综合久久久久综合体| 国产模特精品视频久久久久| 亚洲无线视频| 欧美特黄一区| 色综合天天综合狠狠| 成人av免费观看| 国产99精品视频| 国产精品一品二品| 国产精品一区二区无线| 极品少妇一区二区三区精品视频| 免费一级欧美片在线观看| 亚洲一级二级三级在线免费观看| 亚洲视频在线一区| 亚洲少妇屁股交4| 国产精品久久久久精k8| 亚洲国产精品黑人久久久| 久久久青草青青国产亚洲免观| 日韩精品一区二区三区蜜臀 | 日韩电影在线观看一区| 亚洲v精品v日韩v欧美v专区| 一区二区成人在线| 国产精品理论在线观看| 国产日韩av一区二区| 国产日本欧洲亚洲| 国产精品美女久久福利网站| 国产精品激情偷乱一区二区∴| 中文字幕一区免费在线观看 | 日韩精品亚洲一区| 日韩国产欧美在线播放| 日韩中文字幕91| 秋霞电影一区二区| 麻豆91精品91久久久的内涵| 久久99热这里只有精品| 国内精品伊人久久久久av影院| 久久超碰97人人做人人爱| 精品亚洲aⅴ乱码一区二区三区| 国产在线不卡一卡二卡三卡四卡| 久久97超碰国产精品超碰| 精品一区二区三区的国产在线播放| 麻豆精品一二三| 精品一区二区影视| 国产美女精品一区二区三区| 国产91精品一区二区麻豆亚洲| 波多野结衣中文一区| 欧美成人一品| 亚洲黄色天堂| 亚洲欧美大片| 91高清在线观看| 7777精品伊人久久久大香线蕉完整版 | 国产99精品在线观看| 成人精品电影在线观看| 欧美一区影院| 亚洲三级网站| 久久最新视频| 在线观看91av| 久久精品日产第一区二区三区高清版 | 久久久国产综合精品女国产盗摄| 久久久久久免费| 国产精品久久三区|