您的位置:首页 > 其它

2个日期之间有多少天

2012-07-23 14:03 176 查看
原因是夏令时间会造成计算错误,差一小时就是差一天,用毫秒数计算已经不是正确方法了。

现代标准就是尽量不要使用毫秒数计算日期。

以下是正确方法:

public long daysBetween(Date start,Date end){
long diff = 0;
if (start == null || end == null) {
return diff;
}
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
try {
start = f.parse(f.format(start));
end = f.parse(f.format(end));
} catch (ParseException e) {
return diff;
}
Calendar c = Calendar.getInstance();
if(start.before(end)){
c.setTime(start);
while (c.getTime().before(end)) {
c.add(Calendar.DAY_OF_MONTH, 1);
diff++;
}
}else{
c.setTime(start);
while (c.getTime().after(end)) {
c.add(Calendar.DAY_OF_MONTH, -1);
diff--;
}
}
return diff;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: