溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何通過Java計(jì)算兩個(gè)日期的時(shí)間差來(lái)算出天數(shù)

發(fā)布時(shí)間:2020-07-23 17:07:34 來(lái)源:億速云 閱讀:364 作者:Leah 欄目:編程語(yǔ)言

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹如何通過Java計(jì)算兩個(gè)日期的時(shí)間差來(lái)算出天數(shù),代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

一、算出日期的天數(shù)

代碼實(shí)現(xiàn):

public static void main(String[] args) throws Exception {
		
    		String inTime="2020-6-20 11:30:00";//入住時(shí)間
    		String outTime="2020-6-25 15:40:00";//退房時(shí)間
    		
    		//1.先算 年月日 的天數(shù)
    		SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd");//年月日
    		Date inDate=sdf1.parse(inTime);//獲取入住時(shí)間的年月日
    		Date outDate=sdf1.parse(outTime);//獲取退房時(shí)間的年月日
    		
    		Calendar c1=Calendar.getInstance();
    		c1.setTime(inDate);//把獲取的入住時(shí)間年月日放入Calendar中
    		Calendar c2=Calendar.getInstance();
    		c2.setTime(outDate);//把獲取的退房時(shí)間年月日放入Calendar中
    		
    		//算出天數(shù)
    		int days = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);//
    		System.out.println("天數(shù)是:"+days);
		
	}

二、算出時(shí)分秒的時(shí)間差=天數(shù)

(視頻教程推薦:java視頻教程)

代碼實(shí)現(xiàn):

public static void main(String[] args) throws Exception {
		
		String inTime="2020-6-20 11:30:00";//入住時(shí)間
		String outTime="2020-6-25 15:40:00";//退房時(shí)間
		
		//1.先算 年月日 的天數(shù)
		SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd");//年月日
		Date inDate=sdf1.parse(inTime);//獲取入住時(shí)間的年月日
		Date outDate=sdf1.parse(outTime);//獲取退房時(shí)間的年月日
		
		Calendar c1=Calendar.getInstance();
		c1.setTime(inDate);//把獲取的入住時(shí)間年月日放入Calendar中
		Calendar c2=Calendar.getInstance();
		c2.setTime(outDate);//把獲取的退房時(shí)間年月日放入Calendar中
		
		//算出
		int days = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);//
		System.out.println("天數(shù)是:"+days);
		
		//2.算出時(shí)分秒再++
		//算出退房時(shí)間是否小12:00:00的時(shí)間差   如果大于12:00:00 天數(shù)就++
		SimpleDateFormat sdf2=new SimpleDateFormat("HH:mm:ss");//時(shí)分秒
		long time1=sdf2.parse(outTime.split("\\ ")[1]).getTime();//獲取退房時(shí)分秒  注意 split("\\ ")要有空格
		long time2=sdf2.parse("12:00:00").getTime();//固定12:00:00 
		long timecha= time1-time2;
		if(timecha>0){
			days++;
		}
		System.out.println("總天數(shù):"+days);
	}

關(guān)于如何通過Java計(jì)算兩個(gè)日期的時(shí)間差來(lái)算出天數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI