java根據(jù)開(kāi)始時(shí)間結(jié)束時(shí)間計(jì)算中間間隔日期的實(shí)例代碼
具體代碼如下所述:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
public class Test {
public static List<String> findDates(String stime, String etime)
throws ParseException {
List<String> allDate = new ArrayList();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date dBegin = sdf.parse(stime);
Date dEnd = sdf.parse(etime);
allDate.add(sdf.format(dBegin));
Calendar calBegin = Calendar.getInstance();
// 使用給定的 Date 設(shè)置此 Calendar 的時(shí)間
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
// 使用給定的 Date 設(shè)置此 Calendar 的時(shí)間
calEnd.setTime(dEnd);
// 測(cè)試此日期是否在指定日期之后
while (dEnd.after(calBegin.getTime())) {
// 根據(jù)日歷的規(guī)則,為給定的日歷字段添加或減去指定的時(shí)間量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
allDate.add(sdf.format(calBegin.getTime()));
}
return allDate;
}
public static void main(String[] args) {
//測(cè)試數(shù)據(jù)
String stime = "2019-05-01";
String etime = "2019-05-05";
//集合中包含2019-05-01/2019-05-05,不需要可去除
List<String> list = new ArrayList<>();
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
long s = Long.valueOf(sdf.parse(stime).getTime());
long e = Long.valueOf(sdf.parse(etime).getTime());
//只有結(jié)束時(shí)間大于開(kāi)始時(shí)間時(shí)才進(jìn)行查詢(xún)
if(s<e) {
list = findDates(stime, etime);
}
} catch (ParseException e) {
e.printStackTrace();
}
for(String time : list) {
System.out.println(time);
}
System.out.println("間隔天數(shù):" + list.size());
}
}
ps:下面看下java根據(jù)開(kāi)始時(shí)間和結(jié)束時(shí)間,計(jì)算中間天數(shù),并打印
import java.text.SimpleDateFormat;
import java.util.Date;
public class Calcdate {
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args)throws Exception{
Date beginTime = sdf.parse("2015-04-23 12:32:44");
// Date endTime = sdf.parse("2015-04-23 14:56:44");
Date endTime = sdf.parse("2015-04-29 14:56:44");
long diff = (endTime.getTime() - beginTime.getTime()) / (86400 * 1000);
System.out.println("diff = " + diff);
Date sb = null;
Date se = null;
if(diff == 0){
sb = beginTime;
se = endTime;
String ss = String.format("%d> Sb=%s, Se=%s", 1, Coder.DateTimeToStr(sb), Coder.DateTimeToStr(se));
System.out.println(ss);
}else {
int i = 0;
while (i <= diff) {
if (i == 0) {
sb = beginTime;
se = sdf.parse(ymd.format(sb) + " 23:59:59");
} else if (i == diff) {
sb = sdf.parse(ymd.format(endTime) + " 00:00:00");
se = endTime;
} else {
se = new Date(beginTime.getTime() + i * 24 * 60 * 60 * 1000);
sb = sdf.parse(ymd.format(se) + " 00:00:00");
se = sdf.parse(ymd.format(se) + " 23:59:59");
}
String ss = String.format("%d> Sb=%s, Se=%s", i, Coder.DateTimeToStr(sb), Coder.DateTimeToStr(se));
System.out.println(ss);
i++;
}
}
}
}
diff = 6 0> Sb=2015-04-23 12:32:44, Se=2015-04-23 23:59:59 1> Sb=2015-04-24 00:00:00, Se=2015-04-24 23:59:59 2> Sb=2015-04-25 00:00:00, Se=2015-04-25 23:59:59 3> Sb=2015-04-26 00:00:00, Se=2015-04-26 23:59:59 4> Sb=2015-04-27 00:00:00, Se=2015-04-27 23:59:59 5> Sb=2015-04-28 00:00:00, Se=2015-04-28 23:59:59 6> Sb=2015-04-29 00:00:00, Se=2015-04-29 14:56:44
總結(jié)
以上所述是小編給大家介紹的java根據(jù)開(kāi)始時(shí)間結(jié)束時(shí)間計(jì)算中間間隔日期的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- java?Date獲取本月的開(kāi)始時(shí)間與結(jié)束時(shí)間
- java獲取指定開(kāi)始時(shí)間與結(jié)束時(shí)間之間的所有日期
- Java計(jì)算兩個(gè)日期時(shí)間之間的天數(shù)最簡(jiǎn)方法
- Java編程實(shí)現(xiàn)計(jì)算兩個(gè)日期的月份差實(shí)例代碼
- java計(jì)算兩個(gè)日期之前的天數(shù)實(shí)例(排除節(jié)假日和周末)
- Java簡(jiǎn)單計(jì)算兩個(gè)日期月數(shù)差的方法
- java計(jì)算兩個(gè)日期中間的時(shí)間
- 利用Java中Calendar計(jì)算兩個(gè)日期之間的天數(shù)和周數(shù)
- JAVA計(jì)算兩個(gè)日期相差的實(shí)例
- Java根據(jù)開(kāi)始時(shí)間和結(jié)束時(shí)間及周幾計(jì)算日期的示例代碼
相關(guān)文章
淺談Java 將圖片打包到j(luò)ar中的路徑問(wèn)題
下面小編就為大家分享一篇淺談Java 將圖片打包到j(luò)ar中的路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
java 中Excel轉(zhuǎn)shape file的實(shí)例詳解
這篇文章主要介紹了java 中Excel轉(zhuǎn)shape file的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09
使用IDEA啟動(dòng)項(xiàng)目遇見(jiàn)ClassNotFoundException的解決方案
這篇文章主要介紹了使用IDEA啟動(dòng)項(xiàng)目遇見(jiàn)ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
SpringBoot 接口開(kāi)發(fā)教程(httpclient客戶(hù)端)
這篇文章主要介紹了SpringBoot 接口開(kāi)發(fā)教程(httpclient客戶(hù)端),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java開(kāi)發(fā)人員最常犯的10個(gè)錯(cuò)誤
這篇文章主要介紹了Java開(kāi)發(fā)人員最常犯的10個(gè)錯(cuò)誤,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
springboot配置請(qǐng)求超時(shí)時(shí)間(Http會(huì)話和接口訪問(wèn))
本文主要介紹了springboot配置請(qǐng)求超時(shí)時(shí)間,包含Http會(huì)話和接口訪問(wèn)兩種,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
有關(guān)tomcat內(nèi)存溢出的完美解決方法
下面小編就為大家?guī)?lái)一篇有關(guān)tomcat內(nèi)存溢出的完美解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05

