可以参考这个实现办法完成日期的加减
/**
 * 此处插入方法说明。 创建日期:(2001-10-19 16:50:17)
 * @return long
 * @param startdate java.lang.String  2001-10-19
 * @param enddate java.lang.String 2001-10-19
 */
public long 两天之间天数(String startdate, String enddate) throws java.lang.Exception {
int[] start = new int[3];
java.util.StringTokenizer start1 = new java.util.StringTokenizer(startdate, "-");
int i = 0;
while (start1.hasMoreTokens()) {
start[i++] = Integer.parseInt(start1.nextToken());
System.out.println(start[i - 1]);
}
int[] end = new int[3];
java.util.StringTokenizer end1 = new java.util.StringTokenizer(enddate, "-");
i = 0;
while (end1.hasMoreTokens()) {
end[i++] = Integer.parseInt(end1.nextToken());
System.out.println(end[i - 1]);
}
System.out.println(end[2]);
Calendar c1 = Calendar.getInstance();
c1.set(start[0], start[1] - 1, start[2]);
long m1 = c1.getTime().getTime();
Calendar c2 = Calendar.getInstance();
c2.set(end[0], end[1] - 1, end[2]);
long m2 = c2.getTime().getTime();
System.out.println("m1=" + m1);
System.out.println("m2=" + m2);
long d = m2 - m1;
if (m1 > m2) {
// -------------------------------------------------------------------
cat.info("数据库时间设置有错误!");
// -------------------------------------------------------------------
throw(new Exception("数据库时间设置有错误!请重新设置数据库时间!!"));
}
return (d / (3600 * 24 * 1000));
}
稍微修改下就可以实现了

解决方案 »

  1.   

    d1和d2表示两个Date类型变量
    ((double)d1.getTime()-(double)d2.getTime())/1000
      

  2.   

    最好用java.util.Calendar,可以处理所有的日期,时间计算问题
      

  3.   

    那位叫brain_wang的仁兄,最好先去看看Calendar的实现再发言。
      

  4.   


    谢谢,用Calendar或者他的子类可以吗?
      

  5.   

    java.util.Calendar cal=java.util.Calendar.getInstance();
        java.util.Calendar cal1=java.util.Calendar.getInstance();
        cal.set(2003,1,18,10,10,10);//时间1:2003-1-18 10:10:10
        cal1.set(2003,1,18,12,12,12);//时间2:2003-1-18 12:12:12
        System.out.println(((double)cal1.getTime().getTime()-(double)cal.getTime().getTime())/1000);
      

  6.   

    hayai(生命树):
    你不懂不要乱说,问题只是需要点到为止的,不需要列出实现代码吧?