java 时间的增减

最近用到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());
  }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值