/**
* 日期相加减
* @param time
* 时间字符串 yyyy-MM-dd HH:mm:ss
* @param num
* 加的数,-num就是减去
* @return
* 减去相应的数量的年的日期
* @throws ParseException
*/
public static Date yearAddNum(Date time, Integer num) {
//SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Date date = format.parse(time);
Calendar calendar = Calendar.getInstance();//使用默认时区和区域设置获取日历。
calendar.setTime(time);
calendar.add(Calendar.YEAR, num);//根据日历的规则,将指定的时间量添加或减去给定的日历字段。
Date newTime = calendar.getTime();
return newTime;
}
/**
*
* @param time
* 时间
* @param num
* 加的数,-num就是减去
* @return
* 减去相应的数量的月份的日期
* @throws ParseException Date
*/
public static Date monthAddNum(Date time, Integer num){
//SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Date date = format.parse(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.MONTH, num);
Date newTime = calendar.getTime();
return newTime;
}
/**
*
* @param time
* 时间
* @param num
* 加的数,-num就是减去
* @return
* 减去相应的数量的天的日期
* @throws ParseException Date
*/
public static Date dayAddNum(Date time, Integer num){
//SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Date date = format.parse(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(time);
calendar.add(Calendar.DAY_OF_MONTH, num);
Date newTime = calendar.getTime();
return newTime;
}
上面三张图是已经封装好的关于日期计算的方法。其实上面三个方法基本都是一样的,都是将时间类型的time转换成日历格式的时间,再通过日历固有的add方法进行的计算,最后再将计算后的时间进行转换,返回即可。
通过刚刚的描述,现在我们都知道了上面三张图的代码基本都是一样的,只是除了日历固有的add方法所引用的参数的不同而已。
下面两张图是调用上图三个方法需要传入的参数和结果: