A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑马zxc 于 2013-9-17 19:14 编辑

两个Date类型的日期,如:Date a=“2013-12-3”;Date b=“2013-11-12”;应该如何相减,然后得出中间相差的天数???求助!!!

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

4 个回复

倒序浏览
  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
复制代码
回复 使用道具 举报
解题思路:
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+"秒");  

希望对你有所帮助
回复 使用道具 举报
a.getTime()-b.getTime 毫秒差,再除以一天的毫秒数
回复 使用道具 举报
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”);//转换指定日期格式字符串为日期对象
//不过在转换的时候可能触发异常,所以要抛出异常
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马