OF COURSE ^o^ java有直接求的方法,用Calendar类。 看下面: import java.util.Calendar;public class DataTest{ public int countDays(Date sDate, Date eDate) throws Exception { Calendar c = Calendar.getInstance() ;
c.setTime(sDate); int ls = c.get(Calendar.DAY_OF_YEAR) ;
c.setTime(eDate); int le = c.get(Calendar.DAY_OF_YEAR) ;
if(le.after(ls)){ return (int) (le-ls); } else{ return (int) (ls-le); } } } 如果你要求某年的天数如下:Calendar c = Calendar.getInstance() ; Date d = new Date("XXXX-XX-XX"); (把那年的日期放入) c.setTime(d); int dayCount = c.get(Calendar.DAY_OF_YEAR);有问题就提出来,我现在没有IDE,还没运行此代码,呵呵!
int[] start = { 0, 0, 0 };
int[] end = { 0, 0, 0 };
int i = 0;
int j = 0;
StringTokenizer stStart = new StringTokenizer(startDate, "-");
while (stStart.hasMoreTokens()) {
start[i] = Integer.parseInt(stStart.nextToken());
if (++i == 3)
break;
}
StringTokenizer stEnd = new StringTokenizer(endDate, "-");
while (stEnd.hasMoreTokens()) {
end[j] = Integer.parseInt(stEnd.nextToken());
if (++j == 3)
break;
} java.sql.Date dStart = new java.sql.Date(start[0]-1900, start[1]-1, start[2]);
java.sql.Date dEnd = new java.sql.Date(end[0]-1900, end[1]-1, end[2]);
long diffDate = 0;
long oneDateMill = 24 * 60 * 60 * 1000;
long b = dStart.getTime() - dEnd.getTime();
diffDate = b / oneDateMill;
return diffDate;
}
有没有更简单的方法啊~~~~~~
upup
* 计算两个日期之间的差
* 注意两个日期格式必须相同
* @param startDate 字符串开始时间
* @param endDate 字符串结束时间
* @param format 时间格式
* @return int 相差天数
* @throws ParseException
*/
public int countDays(String startDate, String endDate, String format)
throws ParseException
{
SimpleDateFormat sf = new SimpleDateFormat(format) ;
Date sDate = sf.parse(startDate) ;
Date eDate = sf.parse(endDate) ;
Calendar c = Calendar.getInstance() ;
c.setTime(sDate);
long ls = c.getTimeInMillis() ;
c.setTime(eDate);
long le = c.getTimeInMillis() ; return (int) ((le-ls)/(24*3600*1000));
}
qczl1224(倾请一世) :方法是不错,可惜我用不上阿。
看下面:
import java.util.Calendar;public class DataTest{
public int countDays(Date sDate, Date eDate)
throws Exception
{
Calendar c = Calendar.getInstance() ;
c.setTime(sDate);
int ls = c.get(Calendar.DAY_OF_YEAR) ;
c.setTime(eDate);
int le = c.get(Calendar.DAY_OF_YEAR) ;
if(le.after(ls)){
return (int) (le-ls);
}
else{
return (int) (ls-le);
}
}
}
如果你要求某年的天数如下:Calendar c = Calendar.getInstance() ;
Date d = new Date("XXXX-XX-XX"); (把那年的日期放入)
c.setTime(d);
int dayCount = c.get(Calendar.DAY_OF_YEAR);有问题就提出来,我现在没有IDE,还没运行此代码,呵呵!