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

2021-05-27 20:02:11 字數 1885 閱讀 9142

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

起始時間                截至期                     有效期 

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...