老鸟们好哈!我刚刚学完最初级的java课程!我要在一个增删改查的控制台做一个DVD管理系统:我要用java语言查询借出DVD超出7天没有归还的客户!该怎么写呢?思路是用当前日期去减去借出日期:如借出时间是6月18日,今天是7月20日,我试过把日期转化为数字?但是还是没有反映?怎样写代码?

解决方案 »

  1.   


    public static final int daysBetween(Date early, Date late) {
    java.util.Calendar calst = java.util.Calendar.getInstance();
    java.util.Calendar caled = java.util.Calendar.getInstance();
    calst.setTime(early);
    caled.setTime(late);
    //设置时间为0时
    calst.set(java.util.Calendar.HOUR_OF_DAY, 0);
    calst.set(java.util.Calendar.MINUTE, 0);
    calst.set(java.util.Calendar.SECOND, 0);
    caled.set(java.util.Calendar.HOUR_OF_DAY, 0);
    caled.set(java.util.Calendar.MINUTE, 0);
    caled.set(java.util.Calendar.SECOND, 0); //得到两个日期相差的天数
    int days = ((int) (caled.getTime().getTime() / 1000) - (int) (calst
    .getTime().getTime() / 1000)) / 3600 / 24;
    return days;
    }
      

  2.   

             先使用获取日期函数,获取当前日期,再取出以后的日期字符串!
              使用subString 截取字符串再比较也可以啊!
      

  3.   

     先使用获取日期函数,获取当前日期,再取出以前的日期字符串!
              使用subString 截取字符串再比较也可以啊!
      

  4.   

    完整的测试代码:
    http://zhoujingxian.javaeye.com/admin/blogs/440953
      

  5.   


    你这个截取的如果不自己计算那个月份的天数应该出不来的吧比如:20090805与20090701,只单纯的用string转int来相剪的话,出来的是104,不是35,如果自己手动处理年份,月份,和天数的话,那就另当别论了啊
      

  6.   


    http://zhoujingxian.javaeye.com/blog/440961贴快了
      

  7.   

    与数据库交互了么,mysql本身支持时间的加减
      

  8.   


    public static void main(String args[])
    {
        getDays("20090618", "20090620");
    }private static long getDays(String before, String after) throws Exception
         {
          SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
          Date date1 = sdf.parse(before);
          Date date2 = sdf.parse(after);
          long millSeconds = date2.getTime() - date1.getTime();
          long days = millSeconds/(1000*60*60*24);
          System.out.println("days is : " + days);
          return days;
         }
      

  9.   

    晕,直接转成long数据类型,就可以比较了
    还有就是两个Date可以 compare方法
      

  10.   


    为什么要用java算呢?几乎所有数据库都支持时间计算的吧?
    直接传一个7天进去,在SQL里就搞定了。
      

  11.   


    import java.util.Date;import org.apache.commons.lang.time.DateFormatUtils;
    import org.apache.commons.lang.time.DateUtils;public class Test { public static void main(String[] args) {
    Date[] dates = new Date[] { java.sql.Date.valueOf("2010-01-05"),
    java.sql.Date.valueOf("2009-12-05") };
    Date now = new Date();
    Date deadline = DateUtils.addDays(now, -7);
    System.out.println("当前时间:"+DateFormatUtils.ISO_DATE_FORMAT.format(now));
    System.out.println("7天前:"+DateFormatUtils.ISO_DATE_FORMAT.format(deadline));
    for(Date date: dates){
    if(date.before(deadline)){
    System.out.println("超过7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
    }else{
    System.out.println("没超7天:"+DateFormatUtils.ISO_DATE_FORMAT.format(date));
    }
    }
    }}需要commons-lang类库,下载地址:http://commons.apache.org/downloads/download_lang.cgi
      

  12.   

    当前时间减去不违规的天数,然后用得到的时间 after before等函数比较!
      

  13.   

    格式化成日期类型。然后直接用compareTo比较。