Java 計算兩個日期之間的差 年 月 日

2021-09-06 05:03:10 字數 1968 閱讀 5619

在專案中有這樣的需求:   需要顯示剩餘的年月日。如下表:

起始時間                截至期                     有效期 

2011-01-01          2013-12-31            3年

2011-01-01          2011-01-01            1天

/*** 處理平台的時間轉換

* @author alf

* 2011-8-31 上午09:21:39

*/public

class datehandler -\\d-\\d");//定義整則表示式

private datehandler(){}  

/*** 計算剩餘時間

* @param startdatestr

* @param enddatestr

* @return

*/public

static string remaindatetostring(string startdatestr, string enddatestr) catch (parseexception e)   

try  catch (parseexception e)   

cals.settime(startdate);  

int starty = cals.get(calendar.year);  

int startm = cals.get(calendar.month);  

int startd = cals.get(calendar.date);  

int startdayofmonth = cals.getactualmaximum(calendar.day_of_month);  

cals.settime(enddate);  

int endy = cals.get(calendar.year);  

int endm = cals.get(calendar.month);  

//處理2011-01-10到2011-01-10,認為服務為一天

int endd = cals.get(calendar.date)+1;  

int enddayofmonth = cals.getactualmaximum(calendar.day_of_month);  

stringbuilder sbuilder = new stringbuilder();  

if (enddate.compareto(startdate)<0)   

int lday = endd-startd;  

if (lday<0)   

//處理天數問題,如:2011-01-01 到 2013-12-31  2年11個月31天     實際上就是3年

if (lday == enddayofmonth)   

int mos = (endy - starty)*12 + (endm- startm);  

int lyear = mos/12;  

int lmonth = mos%12;  

if (lyear >0)   

if (lmonth > 0)   

if (lday >0 )   

return sbuilder.tostring();  

}  /*

* 轉換 dataandtime 2013-12-31 23:59:59 到

* date 2013-12-31

*/public

static string getdate(string dateandtime)  

}  return

"data error";  

}  public

static

void main(string args)   

Java 計算兩個日期之間的差 年 月 日

在專案中有這樣的需求 需要顯示剩餘的年月日。如下表 起始時間 截至期 有效期 2011 01 01 2013 12 31 3年 2011 01 01 2011 01 01 1天 處理平台的時間轉換 author alf 2011 8 31 上午09 21 39 public class dateha...

c 計算兩個日期之間的天數差

有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的,我們規定他們之間的天數為兩天。輸入形式為yyyymmdd,例如 20110412 20110422 輸出為 11 include define isyeap x x 100 0 x 4 0 x 400 0?1 0 定義巨集判斷是否是閏年,方便計...

Java 計算兩個日期的時間差

計算兩個日期的時間差 param formattime1 param formattime2 return public static string gettimedifference timestamp formattime1,timestamp formattime2 catch parseex...