日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 将一段时间分割为两个连续的时间

發布時間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 将一段时间分割为两个连续的时间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

eg:

20180901? -- 20180930

->>>>

20180901-20180915? && 20180916-20180930

?

/*** 獲取兩日期相差天數** @param beginDateStr 時間起點* @param endDateStr 時間終點* @param TimeType 時間類型 yyyy-MM-dd || yyyyMMdd || ....* @return long /天數*/public static long getDaySub(String beginDateStr, String endDateStr, String TimeType) {long day = 0;SimpleDateFormat format;try {format = new SimpleDateFormat(TimeType);} catch (Exception e) {System.out.println("getDaySub——>TimeType:"+TimeType);format = new SimpleDateFormat("yyyy-MM-dd");}Date beginDate;Date endDate;try {beginDate = format.parse(beginDateStr);endDate = format.parse(endDateStr);day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);} catch (Exception e) {System.out.println("獲取兩時間差值出現異常 begin:" + beginDateStr + " end:" + endDateStr);}if (day < 0) {day = day * -1;}return day;}/*** 將一段時間分割為兩個連續的時間段** @param dp 時間集合 <開始時間,結束時間>* @param TimeType 時間類型 yyyy-MM-dd || yyyyMMdd || ....* @return 1.兩個相連的時間集合 2.null*/public static List<Pair<String, String>> cutDatePair(Pair<String, String> dp, String TimeType) {List<Pair<String, String>> lst = new ArrayList<>();long ts = getDaySub(dp.left(), dp.right(), TimeType);if (ts < 2) {return null;}int day = (int) ts / 2;SimpleDateFormat format;try {format = new SimpleDateFormat(TimeType);} catch (Exception e) {format = new SimpleDateFormat("yyyy-MM-dd");}Date beginDate;try {beginDate = format.parse(dp.left());Calendar beginDataEnd = Calendar.getInstance();beginDataEnd.setTime(beginDate);beginDataEnd.add(Calendar.DAY_OF_YEAR, day);//"開始"的結束時間 Calendar endDataBegin = Calendar.getInstance();endDataBegin.setTime(beginDate);endDataBegin.add(Calendar.DAY_OF_YEAR, day + 1);//"結束"的開始時間 lst.add(new Pair<>(dp.left(), format.format(beginDataEnd.getTime())));lst.add(new Pair<>(format.format(endDataBegin.getTime()), dp.right()));System.out.println("拆分時間 " + dp.left() + "-" + dp.right() + " -->> " + dp.left() + "-" + format.format(beginDataEnd.getTime()) +" and " + format.format(endDataBegin.getTime()) + "-" + dp.right());} catch (Exception e) {}if(lst.isEmpty() || lst.size()!=2){return null;}return lst;}

?

轉載于:https://www.cnblogs.com/yishilin/p/9728937.html

總結

以上是生活随笔為你收集整理的java 将一段时间分割为两个连续的时间的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。