我要做一个物流管理软件,涉及到一个问题,就是如何实现车辆的保险和年检的自动提醒功能!我在车辆表里面设置了车辆保险时间和年检时间。比如我想提前15天提醒,也就是在进行保险和年检之前15天进行提醒。涉及到的时间操作函数不是太懂,不明白怎么才能实现?各位有没有什么办法,最好有代码?

解决方案 »

  1.   

         我知道思路是这样子的!问题是我不知道怎么写代码?现在正在边学边写!你能不能试着写一下?本人刚学用jsp做软件!谢谢!
      

  2.   

    我自己已解决,贴出来分享一下
    public int[] compareInsuranceDate(){
    Calendar time=Calendar.getInstance();
    time.clear();                       //专门用来进行系统清零的日历类型
    int[] a =new int[10];
    int i=0;
    DataBase db=new DataBase();
    String sql="select vehicleNumber,vehicleInsuranceTime from vehicle";
    ResultSet rs=db.execQuery(sql);
    try {
    while(rs.next()){
    time.clear();//为了保证系统时间德准确性,每次使用前都应该清零
    Calendar d1=Calendar.getInstance();//获得系统的时间
    java.sql.Date date=rs.getDate("vehicleInsuranceTime");
    Calendar d2=Calendar.getInstance();//获得数据库中的保险时间
    d2.setTime(date); //将date类型转换成calendar类型
    int b=this.getDaysBetween(d1, d2);
    if(0<b&&b<15){
    a[i]=rs.getInt("vehicleNumber");
    i++;
    }
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    db.close();
    return a;
    }
    /**
     * 获得两个时间类型的相隔天数
     * @param d1 时间比较小的那个
     * @param d2 时间比较大的那个
     * @return
     */
    private int getDaysBetween (Calendar d1, Calendar d2) {
    //    if (d1.after(d2)) { 
    //        java.util.Calendar swap = d1;
    //        d1 = d2;
    //        d2 = swap;
    //   }
        int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);
        int y2 = d2.get(Calendar.YEAR);
        if (d1.get(Calendar.YEAR) != y2) {
            d1 = (Calendar) d1.clone();
            do {
                days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);//得到当年的实际天数
                d1.add(Calendar.YEAR, 1);
            } while (d1.get(Calendar.YEAR) != y2);
        }
        return days;
    }