请教一个很基础的Java问题。关于日期的运算。

Elvewyn 2005-05-16 10:04:27
现在,我想在Java中求两个日期相隔了多少天?请问应该怎么做?谢谢各位!
...全文
347 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianan 2005-05-16
  • 打赏
  • 举报
回复
我的办法是,把两个日期的毫秒数相减再除每天的数,就可以了.不知别人有没有期它的办法.
java_augur 2005-05-16
  • 打赏
  • 举报
回复
DateTime start = ...
DateTime end = ...
Period p = new Period(start, end, PeriodType.days());
int days = p.getDays();
zenkill 2005-05-16
  • 打赏
  • 举报
回复
这有一个小sample,你试试

Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(2005, Calendar.MAY, 15);
long day1 = cal.getTimeInMillis();
long day2 = System.currentTimeMillis();
System.out.println((day2 -day1)/(24*3600000));

Calendar 虽然提供了域的相对值加法运算,但是还没有提供两个时间差的运算。
这时只有先取得对应时间long 值的差,
然后除以你想要得到的时间单位的毫秒数。
  • 打赏
  • 举报
回复
不知道是不是搂主需要的?
  • 打赏
  • 举报
回复
求两个日期相隔了多少天:输入时间格式为(yyyy-mm-dd)
import java.util.GregorianCalendar;
import java.util.Date;
import java.text.*;

public class returndate {
public int returndate(String date1, String date2) {
String d1bb[] = date1.split(" ");
String d1aa[] = d1bb[0].split("-");
String d1begindate = "";
int i = 0;
int d1year = Integer.parseInt(d1aa[0]);
int d1month = Integer.parseInt(d1aa[1]) - 1;
int d1day = Integer.parseInt(d1aa[2]);
String d2bb[] = date2.split(" ");
String d2aa[] = d2bb[0].split("-");
String d2begindate = "";
int d2year = Integer.parseInt(d2aa[0]);
int d2month = Integer.parseInt(d2aa[1]) - 1;
int d2day = Integer.parseInt(d2aa[2]);
GregorianCalendar d2WorldTour = new GregorianCalendar(d2year, d2month,
d2day);
d2WorldTour.add(GregorianCalendar.DATE, 0);
Date d2d = (Date) d2WorldTour.getTime();
DateFormat d2df = DateFormat.getDateInstance();
d2begindate = d2df.format(d2d);
for (i = 0; ; i++) {
GregorianCalendar d1WorldTour = new GregorianCalendar(d1year, d1month,
d1day);
d1WorldTour.add(GregorianCalendar.DATE, +i); //表示日向前加几天
Date d1d = (Date) d1WorldTour.getTime(); //获得改变后的日期
DateFormat d1df = DateFormat.getDateInstance(); //格式化显示
d1begindate = d1df.format(d1d); //格式化显示
if (d2begindate.compareTo(d1begindate) >= 0) {
if (d2begindate.compareTo(d1begindate) == 0) {
break;
}
}
else {
return d2begindate.compareTo(d1begindate);
}
}
return i;
}
}
MARS.nEIL 2005-05-16
  • 打赏
  • 举报
回复
帮顶.
loveyousomuch 2005-05-16
  • 打赏
  • 举报
回复
jdk5.0好像支持这种运算,楼主可以查查资料

81,094

社区成员

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

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