最近用到java时间的 增加或者减少,原先一点思路都没有,今天看了API做出来,网络上不好找就发出来用一下
package com.lc.date;
import java.util.Calendar;
import java.util.Date;
/**
* 操作时间的集合类
*
* @author kuyefeiwu0
*/
public class DateUtil {
/**
* 给定的时间,按照分钟进行偏移
*
* @param date 给定的时间
* @param offset 偏移量
* @return 偏移后的时间
*/
public static Date modifiyMinute(Date date, int offset) {
return modifiyDate(date, Calendar.MINUTE, offset);
}
/**
* 给定的时间,按照小时进行偏移
*
* @param date 给定的时间
* @param offset 偏移量
* @return 偏移后的时间
*/
public static Date modifiyHour(Date date, int offset) {
return modifiyDate(date, Calendar.HOUR_OF_DAY, offset);
}
/**
* 给定的时间,按照年份进行偏移
*
* @param date 给定的时间
* @param offset 偏移量
* @return 偏移后的时间
*/
public static Date modifiyYear(Date date, int offset) {
return modifiyDate(date, Calendar.YEAR, offset);
}
/**
* 给定的时间,按照月份进行偏移
*
* @param date 给定的时间
* @param offset 偏移量
* @return 偏移后的时间
*/
public static Date modifiyMonth(Date date, int offset) {
return modifiyDate(date, Calendar.MONTH, offset);
}
/**
* 给定的时间,按照天数进行偏移
*
* @param date 给定的时间
* @param offset 偏移量
* @return 偏移后的时间
*/
public static Date modifiyDayOfMonth(Date date, int offset) {
return modifiyDate(date, Calendar.DAY_OF_MONTH, offset);
}
/**
* 给定时间,按照指定的类型进行偏移
*
* @param date 给定的时间
* @param calendarFiled 指定的偏移类型(年 或 月 或 日 等等)
* @param offset 偏移量
* @return 偏移后的时间
*/
private static Date modifiyDate(Date date, int calendarFiled, int offset) {
if (date == null) {
throw new IllegalArgumentException("传递的时间有误");
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(calendarFiled, offset);
return new Date(calendar.getTimeInMillis());
}
}