//Date in String like "20011205". //String strDate1, strDate2;SimpleDateFormat format = new SimpleDateFormat(yyyyMMdd); Date d1 = format.parse(strDate1); Date d2 = format.parse(strDate2); int diffDay = (d2.getTime() - d1.getTime())/1000//3600/24;
int days = (calendar2.getTimeInMillis()-calendar1.getTimeInMillis())/1000/60/60/24;
没有看我写的code吗?里面用到SimpleDateFormat.如果有问题,Exception will be thrown.
所以你想计算A到B有多少天
就分别以A,B作为参数
结果相减
得到的是两个时刻的时间差(单位是毫秒)
再除以1000/60/60/24
就是天数
* 日前後の日付取得.
* @引数 String sDte 日付
* String lKknDay 日
* @戻り値 String "error"
* @exception Exception
*/ public String GetDifDay(String sDte,long lKknDay) { int iYear; //年
int iMth; //月
int iDay; //日
int iSysFstYear; //開始年
int iSysLstYear; //終了年
long lDay;
String sDay = new String();
String sYear = new String();
String sMth = new String();
//開始年
iSysFstYear=Integer.parseInt(strSysFstYear);
//終了年
iSysLstYear=Integer.parseInt(strSysLstYear);
//年
sYear = sDte.substring(0,4);
//月
sMth = sDte.substring(4,6);
//日
sDay = sDte.substring(6,8);
//年
iYear = Integer.parseInt(sYear);
//月
iMth = Integer.parseInt(sMth);
//日
iDay = Integer.parseInt(sDay); GregorianCalendar gCal=new GregorianCalendar(); try {
gCal.set(iYear,iMth-1,iDay);
gCal.add(gCal.DATE,(int)lKknDay); sMth = gCal.get(gCal.MONTH)+"";
iMth = Integer.parseInt(sMth);
iMth = iMth + 1;
sMth = String.valueOf(iMth);
if (sMth.length()==1) {
sMth="0"+sMth;
}
sDay=gCal.get(gCal.DATE)+"";
if (sDay.length()==1) {
sDay="0"+ gCal.get(gCal.DATE)+"";
}
return gCal.get(gCal.YEAR)+""+sMth+sDay;
} catch(Exception e) {
return "error";
}
}
//String strDate1, strDate2;SimpleDateFormat format = new SimpleDateFormat(yyyyMMdd);
Date d1 = format.parse(strDate1);
Date d2 = format.parse(strDate2);
int diffDay = (d2.getTime() - d1.getTime())/1000//3600/24;
throws Exception
{
System.out.println(diffDay("20011114", "20011124"));
} private static int diffDay(String strDate1, String strDate2)
throws ParseException
{
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date d1 = format.parse(strDate1);
Date d2 = format.parse(strDate2);
return (int)((d2.getTime() - d1.getTime())/1000/3600/24);
}