sql2000数据库里面有录入时间:2008-3-10 12:01
有效期为:10 (天)比如当前时间为:2008-3-13 15:05
如何计算当前这条信息还剩多少天,多少小时,多少分,多少秒? 

解决方案 »

  1.   

    里面日期函数可以加减的。http://blog.sina.com.cn/s/blog_4476f010010005co.html
      

  2.   

    用java如何实现:关键是要同时计算 剩多少天 多少小时 多少分 多少秒 ?比如:还剩 1天24分30秒 
      

  3.   

    用当前的时间 getTime()-2008-3-10 12:01的gettime,然后用10天-这个时间(毫秒),然后转换时间格式 
      

  4.   


    if object_id('test') is not null drop table test
    create table test(ddate datetime)
    insert into test values('2010-01-11 12:00:00')
    insert into test values('2010-01-12 13:10:35')
    insert into test values('2010-01-13 08:30:00')
    insert into test values('2010-01-14 10:15:50')
    insert into test values('2010-01-06 16:20:13')
    insert into test values('2010-01-10 16:20:13')
    insert into test values('2010-01-10 10:15:25')select ddate,getdate() as [now],datediff(second,ddate,getdate())/(3600*24) as [day],
    datediff(second,ddate,getdate()) % (3600*24) / 3600 as [hour],
    datediff(second,ddate,getdate()) % 3600 / 60 as [minute],
    datediff(second,ddate,getdate()) % 60 as [second]
    from test
      

  5.   

    把这个字段读出来后,然后使用java的calendar类来处理。先把这个日子加十天得到截止日期,然后比较截止日期和当前时间的毫秒差,进而可计算出天,小时,分等结果
      

  6.   


    import org.apache.commons.lang.time.DateUtils;
    import org.apache.commons.lang.time.DurationFormatUtils;public class Test {
    public static void main(String[] args) {
    java.util.Date date = java.sql.Timestamp.valueOf("2008-03-10 12:01:00");
    int available = 10;
    java.util.Date now = java.sql.Timestamp.valueOf("2008-03-13 15:05:00");
    System.out.println("还剩:"
    + DurationFormatUtils.formatPeriod(now.getTime(), DateUtils
    .addDays(date, available).getTime(), "d'天'HH'小时'mm'分钟'ss'秒'"));
    }
    }用了apache commons-lang
      

  7.   

    Calendar c=Calendar.getInstance();
     Calendar c2=Calendar.getInstance();
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
     String str="2010-1-17 12:01";
     Date d1=sdf.parse(str);
     Date nowd=new Date()
     c.setTime(d1);
     c.add(Calendar.DAY_OF_YEAR, 10);//加十天
     long t=(c.getTime().getTime()-d1.getTime())/1000;//得到时间差
     int n=Integer.parseInt(t+"");
     int s=n%60;
     int mm=(n/60)%60;
     int hh=(n/60/60)%24;
     int dd=(n/60/60/34);
      

  8.   

     
    上面回复的代码有点问题 更新下
    Calendar c=Calendar.getInstance();
     Calendar c2=Calendar.getInstance();
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");
     String str="2010-1-16 17:01";
     Date d1=sdf.parse(str);
     Date nowd=new Date();
     c.setTime(d1);
     c.add(Calendar.DAY_OF_YEAR, 10);//加十天
     long t=(c.getTime().getTime()-nowd.getTime())/1000;//得到时间差
     int n=Integer.parseInt(t+"");
     int s=n%60;
     int mm=(n/60)%60;
     int hh=(n/60/60)%24;
     int dd=(n/60/60/24);
     
     System.out.println(dd+"-"+hh+":"+mm +":"+s);