比如我定2天时间过期  
开始时间20060805172313000  
 
和现在10号时间比肯定过期了,  
通过gettime(),得到毫秒再相减,再和2天(2×24×60×60×1000)比较大小是可以  的    
 
但如果是  30天  我定义long  s  =30×24×60×60×1000;这样肯定是不对的  ,溢出了    
 有没有什么好办法啊

解决方案 »

  1.   

    建议使用java.sql.Timestamp去比较,或者用java.math.BigInteger来存
      

  2.   

    建议使用java.sql.Timestamp去比较,
    怎么比啊??
      

  3.   

    //过期时间
      Date olddate;
    //给过期时间赋值
       olddate = new Date("2006/08/08");
    //给过期时间加上2天
       olddate.setDate(olddate.getDate() + 2);
    //和现在比较
       Date nowdate = new Date();   if(nowdate.after(olddate)){
         System.out.println("已经过期");
       }else{
         System.out.println("没过期");
       }
      

  4.   

    long  s  =30l×24×60×60×1000这样就可以了,哪里需要这么复杂啊。
      

  5.   

    ChDw(米) ( ) 信誉:155  2006-08-10 16:03:00  得分: 0  
     
     
       long  s  =30×24×60×60×1000这样就可以了,哪里需要这么复杂啊。
      s的值是个负直了,还怎么比啊大哥
     
      

  6.   

    每天都有人问这种问题....
    这是我做过的日期相差多少天的例子,自己看吧,不懂再问我,我msn:[email protected] sdf = new SimpleDateFormat( "yyyyMMdd" );
    sdf.setTimeZone( TimeZone.getTimeZone( "Asia/Tokyo" ) );
    String strSysDate = sdf.format( new Date() );
    String strDate = "2006-06-06";
    int date = Integer.parseInt(strSysDate.substring(6,8));
    int month = Integer.parseInt(strSysDate.substring(4,6));
    int year = Integer.parseInt(strSysDate.substring(0,4););
    Date d1 = new Date(Integer.parseInt(strDate.substring(0,4)),
    Integer.parseInt(strDate.substring(5,7)),
    Integer.parseInt(strDate.substring(8,10)));
    Date d2 = new Date(year,month,date);
    long date1 = d1.getTime() / (1000l*60*60*24);
    long date2 = d2.getTime() / (1000l*60*60*24);
    int ii = Integer.parseInt(String.valueOf(date2-date1));System.out.println("结果====>>>>"+ii);
      

  7.   

    Top  
     lip009(深蓝忧郁 
    你的方法有些过时了
    setDate();getDate()过时
      

  8.   

    可以用就行了,我只不过是解决你的问题而已
    Date类是已经不推荐使用了,但是你完全可以把日期对象换成java.util.Calendar或是java.sql.Timestamp
      

  9.   

    ChDw(米) ( ) 信誉:155  2006-08-10 16:03:00  得分: 0  
     
     
       long  s  =30×24×60×60×1000这样就可以了,哪里需要这么复杂啊。
      s的值是个负直了,还怎么比啊大哥-----
    靠,窜改我的代码!!! 
    我写的明明是  long  s  =30l×24×60×60×1000你把那个l放哪里了?????????????????????