java中怎样计算两个日期之间的天数?

hegutoch 2008-04-01 04:51:15
在java中有没有直接的方法去计算两个日期之间的天数?比如,给出日期2008-1-20和2008-4-25,怎样计算它们之间相隔几天?谢谢!
...全文
22212 30 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyhunter0 2010-08-23
  • 打赏
  • 举报
回复

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
long to = df.parse("2008-4-25").getTime();
long from = df.parse("2008-1-20").getTime();
System.out.println((to - from) / (1000 * 60 * 60 * 24));

majin777 2009-03-13
  • 打赏
  • 举报
回复
前几天才看的尚学堂日期处理专题!温习一下
zqy5566 2009-03-06
  • 打赏
  • 举报
回复
ClientEnvironment ce=ClientEnvironment.getInstance();
int day = ce.GetDate.getdaybetween('YYYY-MM-DD','YYYY-MM-DD');
返回的int day 就是二个日期相差的天数.
lbiah2004 2009-02-23
  • 打赏
  • 举报
回复
mark,学习了。。
javatotheworld 2008-06-27
  • 打赏
  • 举报
回复

Java code SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
long to = df.parse("2008-4-25").getTime();
long from = df.parse("2008-1-20").getTime();
System.out.println((to - from) / (1000 * 60 * 60 * 24));


没有太好的办法,一般这样就可以了!
===============================
Date的本质是1970/1/1开始的毫秒数,long型,所有日期运算都可以用这个date.getTime取得的long值来做。
OXFORD_216 2008-06-27
  • 打赏
  • 举报
回复

同意竹子的说法
doushi_youxia 2008-06-27
  • 打赏
  • 举报
回复
老紫竹,牛!佩服!
bakeloar 2008-06-23
  • 打赏
  • 举报
回复
我的Blog写过一遍这样的文章,你可以看看
JAVA 求昨天、明天的算法(前两天,后三天求法)
harkue 2008-06-13
  • 打赏
  • 举报
回复
我觉得还可以用GregorianCalendar类吧,
这个类直接有get(Calendar.DAYOFYEAR)方法这样就可以得到它的天数,
两个天数相减就得到想要的了
woodqlin 2008-06-11
  • 打赏
  • 举报
回复
顶,老蜘蛛
susoft2008 2008-06-09
  • 打赏
  • 举报
回复
就这样干
java528 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wangle860102 的回复:]
引用 1 楼 java2000_net 的回复:
Java code SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
long to = df.parse("2008-4-25").getTime();
long from = df.parse("2008-1-20").getTime();
System.out.println((to - from) / (1000 * 60 * 60 * 24));


没有太好的办法,一般这样就可以了!


顶一个
[/Quote]顶一个
java528 2008-06-06
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wangle860102 的回复:]
引用 1 楼 java2000_net 的回复:
Java code SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
long to = df.parse("2008-4-25").getTime();
long from = df.parse("2008-1-20").getTime();
System.out.println((to - from) / (1000 * 60 * 60 * 24));


没有太好的办法,一般这样就可以了!


顶一个
[/Quote]顶一个
  • 打赏
  • 举报
回复
我在公司写过,貌似和13楼差不多...当时也是想了很久,看了JDK好一会...
aiyuer1314 2008-05-30
  • 打赏
  • 举报
回复
学到知识了!!!
tmy309 2008-05-27
  • 打赏
  • 举报
回复
好象还有一个方法也可以的。

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
long to = df.parse("2008-4-25").getTime();
Calendar to1 = new GregorianCalendar();
to1.setTimeInMillis(to);
//Calendar没有相减的方法,要相减只能把加的数设为负数。
to1.add(Calendar.YEAR, -2008)
to1.add(Calendar.MONTH, -1)
to1.add(Calendar.DAY_OF_MONTH, -20)
两个日期相差的年份 int year=to1.get(Calendar.YEAR);
两个日期相差的月份 int month=to1.get(Calendar.MONTH);
两个日期相差的天数 int day=to1.get(Calendar.DAY_OF_MONTH);

好象是这样写的吧!!!!

这个取相差多少年和多少月比较有用,天数还是1楼的简单。
ThirdDimension 2008-05-27
  • 打赏
  • 举报
回复
收藏了,以后也许能用的上
palm_civet 2008-05-26
  • 打赏
  • 举报
回复
mark,以后要用
roykingw 2008-05-26
  • 打赏
  • 举报
回复
赞同
logi22 2008-05-26
  • 打赏
  • 举报
回复
Date的本质是1970/1/1开始的毫秒数,long型,所有日期运算都可以用这个date.getTime取得的long值来做。
加载更多回复(8)

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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