如何实现 车辆保险和年检的自动提醒功能

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

3 个解决方案

#1


每次用户登录的时候,
调用自定义的函数,取系统当前时间与数据库时间比较;
如果<15天,就弹出提示信息.

#2


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

#3


我自己已解决,贴出来分享一下
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;
}

#1


每次用户登录的时候,
调用自定义的函数,取系统当前时间与数据库时间比较;
如果<15天,就弹出提示信息.

#2


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

#3


我自己已解决,贴出来分享一下
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;
}