在專案中有這樣的需求: 需要顯示剩餘的年月日。如下表:
起始時間 截至期 有效期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...