黑马程序员技术交流社区

标题: java中的两个Date类型的日期应该如何相减?求助!!!! [打印本页]

作者: 黑马zxc    时间: 2013-9-16 18:25
标题: java中的两个Date类型的日期应该如何相减?求助!!!!
本帖最后由 黑马zxc 于 2013-9-17 19:14 编辑

两个Date类型的日期,如:Date a=“2013-12-3”;Date b=“2013-11-12”;应该如何相减,然后得出中间相差的天数???求助!!!
作者: 1098918523    时间: 2013-9-16 18:41
  1. package home.userinfo;
  2. import java.text.ParsePosition;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class GetDate {
  6. public long getdate(String d1, String d2) {
  7.    long i = -1;
  8.    try {
  9.     SimpleDateFormat formatter = new SimpleDateFormat(
  10.       "yyyy-MM-dd HH:mm:ss");
  11.     ParsePosition pos = new ParsePosition(0);
  12.     ParsePosition pos1 = new ParsePosition(0);
  13.     Date dt1 = formatter.parse(d1, pos);
  14.     Date dt2 = formatter.parse(d2, pos1);
  15.     long l = dt1.getTime() - dt2.getTime();
  16.     i = l / (1000 * 60 * 60 * 24);
  17.     // 这是他们相差的天数。
  18.     System.out.println("Hello World!=" + i);
  19.    } catch (Exception
复制代码

作者: 2012    时间: 2013-9-16 19:01
解题思路:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
java.util.Date now = df.parse("2013-12-3 13:31:40");  
java.util.Date date=df.parse("2013-11-12  13:21:00");  
long l=now.getTime()-date.getTime();  
long day=l/(24*60*60*1000);  
long hour=(l/(60*60*1000)-day*24);  
long min=((l/(60*1000))-day*24*60-hour*60);  
long s=(l/1000-day*24*60*60-hour*60*60-min*60);  
System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");  

希望对你有所帮助
作者: 马华    时间: 2013-9-16 20:28
a.getTime()-b.getTime 毫秒差,再除以一天的毫秒数
作者: 诗化了邂逅    时间: 2013-9-17 16:57
1、年月日的加减运算要运用calendar类,用Simple Dateformat的parse方法转为date类型,然后用calendar的get方法,再相减就好啦。
2、Date data=new Date();
long time=data.getTime();//这是取出当前时间的毫秒值
SimpleDateFormat sdf=new SimpleDateFormat();
date=sdf.parse(“ 2013-12-3 00:00:00”);//转换指定日期格式字符串为日期对象
//不过在转换的时候可能触发异常,所以要抛出异常




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2