關於Date類型如何取得兩個日期之間的期間

lxg2000 2003-08-22 10:26:29
有兩個Date型變量如何取得這兩個變量的期間
要能算出相差的年月日
...全文
125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hayai 2003-08-22
  • 打赏
  • 举报
回复
推荐使用java.util.Calendar来计算相差年月日等等。有些东西还必须事先定义或做声明好,比如说,2003/8/21 23:00:00 和 2003/8/22 1:00:00 之间差几天?0天还是1天?如果说是一天,我们知道两者间差2个小时,那么难道它们之间相差一天又两个小时?
acefr 2003-08-22
  • 打赏
  • 举报
回复
//计算两个日期之间相隔的天数
public int getDayInRange(Date lowerLimitDate,Date upperLimitDate)
throws InsufficientDateException{

long upperTime,lowerTime;
upperTime=upperLimitDate.getTime();
lowerTime=lowerLimitDate.getTime();
if(upperTime<lowerTime)
throw new InsufficientDateException();
Long result=new Long((upperTime-lowerTime)/(1000*60*60*24));
return result.intValue();
}
nullhue 2003-08-22
  • 打赏
  • 举报
回复
使用Calendar
cbhyk 2003-08-22
  • 打赏
  • 举报
回复
Date date1 = new Date(1061521133802L);
System.out.println(date1);
Date date2 = new Date(1001521133802L);
System.out.println(date2);
Calendar cal = Calendar.getInstance();
Date sub = new Date(date1.getTime() - date2.getTime());
cal.setTime(sub);
System.out.print("相差" + (cal.get(Calendar.YEAR) - 1970) + "年");
System.out.print((cal.get(Calendar.MONTH) + 1) + "月");
System.out.println(cal.get(Calendar.DAY_OF_MONTH) + "天");
nullhue 2003-08-22
  • 打赏
  • 举报
回复
使用Calendar
jscsqb 2003-08-22
  • 打赏
  • 举报
回复
在java.util.Date类中有一个方法public int compareTo(Date anotherDate)
应该可以解决你的问题。
试一下吧。
pqds 2003-08-22
  • 打赏
  • 举报
回复
古老的办法是两个日期直接想减得到的是毫秒数,然后除以/3600/24等换算可以得到天数
zeros 2003-08-22
  • 打赏
  • 举报
回复
不可能Date类是取当前系统的时间!这2个DateDate型变量的差一定是0,如果忽略时分秒的话。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧