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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java如何计算时间天数差,java计算两个时间相差天数的方法汇总

發布時間:2025/3/21 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java如何计算时间天数差,java计算两个时间相差天数的方法汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述:

輸入:兩個日期

輸出:兩個日期相差的天數

具體代碼實現

方法1:

通過calendar類的日期比較。注意:這里需要考慮一下:

日期是跨年份的,如一個是2012年,一個是2015年的

年份是分閏年和平年的,各自的天數不同

/**

* date2比date1多的天數

* @param date1

* @param date2

* @return

*/

public static int differentdays(date date1,date date2)

{

calendar cal1 = calendar.getinstance();

cal1.settime(date1);

calendar cal2 = calendar.getinstance();

cal2.settime(date2);

int day1= cal1.get(calendar.day_of_year);

int day2 = cal2.get(calendar.day_of_year);

int year1 = cal1.get(calendar.year);

int year2 = cal2.get(calendar.year);

if(year1 != year2) //同一年

{

int timedistance = 0 ;

for(int i = year1 ; i < year2 ; i ++)

{

if(i%4==0 && i%100!=0 || i%400==0) //閏年

{

timedistance += 366;

}

else //不是閏年

{

timedistance += 365;

}

}

return timedistance + (day2-day1) ;

}

else //不同年

{

system.out.println("判斷day2 - day1 : " + (day2-day1));

return day2-day1;

}

}

方法2:

直接通過計算兩個日期的毫秒數,他們的差除以一天的毫秒數,即可得到我們想要的兩個日期相差的天數。

/**

* 通過時間秒毫秒數判斷兩個時間的間隔

* @param date1

* @param date2

* @return

*/

public static int differentdaysbymillisecond(date date1,date date2)

{

int days = (int) ((date2.gettime() - date1.gettime()) / (1000*3600*24));

return days;

}

測試:

public static void main(string[] args)

{

string datestr = "2008-1-1 1:21:28";

string datestr2 = "2010-1-2 1:21:28";

simpledateformat format = new simpledateformat("yyyy-mm-dd hh:mm:ss");

simpledateformat format2 = new simpledateformat("yyyy-mm-dd hh:mm:ss");

try

{

date date2 = format.parse(datestr2);

date date = format.parse(datestr);

system.out.println("兩個日期的差距:" + differentdays(date,date2));

system.out.println("兩個日期的差距:" + differentdaysbymillisecond(date,date2));

} catch (parseexception e) {

e.printstacktrace();

}

}

結果:

兩個日期的差距:732

兩個日期的差距:732

兩種實現方式的比較:

方式一的話,只是通過日期來進行比較兩個日期的相差天數的比較,沒有精確到相差到一天的時間。如果是只是純粹通過日期(年月日)來比較比較的話就是方式一。

對于方式二,是通過計算兩個日期相差的毫秒數來計算兩個日期的天數差的。一樣會有一個小問題,就是當他們相差是23個小時的時候,它就不算一天了。如下面的兩個日期

2015-1-1 21:21:28

2015-1-2 1:21:28

測試代碼:

public static void main(string[] args)

{

string datestr = "2015-1-1 21:21:28";

string datestr2 = "2015-1-2 1:21:28";

simpledateformat format = new simpledateformat("yyyy-mm-dd hh:mm:ss");

simpledateformat format2 = new simpledateformat("yyyy-mm-dd hh:mm:ss");

try

{

date date2 = format.parse(datestr2);

date date = format.parse(datestr);

system.out.println("兩個日期的差距:" + differentdays(date,date2));

system.out.println("兩個日期的差距:" + differentdaysbymillisecond(date,date2));

} catch (parseexception e) {

e.printstacktrace();

}

}

結果:

兩個日期的差距:1

兩個日期的差距:0

兩種方式的不同了,在具體時間相差不到24小時時,方式2的方式不算一天,而方式1是通過日期(年月日)來判斷的,所以算相差一天。

以上就是java計算兩個時間相差天數的方法,并進行了詳細比較,希望對大家的學習有所幫助。

如您對本文有疑問或者有任何想說的,請點擊進行留言回復,萬千網友為您解惑!

總結

以上是生活随笔為你收集整理的java如何计算时间天数差,java计算两个时间相差天数的方法汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

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