zoukankan      html  css  js  c++  java
  • 工具类DateHandler

    package com.ctid.rachel.core.util;

    import java.math.BigDecimal;
    import java.util.Calendar;
    import java.util.Date;

    import org.springframework.stereotype.Component;

    /**
    * 日期及时间处理工具类
    * @author 肖复禹
    * @date 2015-9-16
    * @email xiaofuyu@ctid.com.cn
    */
    @Component(value="dateHandler")
    public class DateHandler {

    /**
    * 获取当前时间点后的第N天的日期
    * @param day 日期增量
    * @return 新的日期对象
    */
    public static Date GetAfterDay(int day) {
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.DAY_OF_MONTH, day);
    return cal.getTime();
    }

    /**
    * 获取目标日期后N天的日期
    * @param date 目标日期
    * @param day 日期增量
    * @return 新的日期对象
    */
    public static Date GetAfterDay(Date date, int day) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.DAY_OF_MONTH, day);
    return cal.getTime();
    }

    /**
    * 获取当前时间后N个月的时间
    * @param month 月份增量
    * @return 新的日期对象
    */
    public static Date GetAfterMonth(int month) {
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MONTH, month);
    return cal.getTime();
    }

    /**
    * 获取目标时间后N个月的日期
    * @param date 目标时间
    * @param month 月份增量
    * @return 新的日期对象
    */
    public static Date GetAfterMonth(Date date, int month) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MONTH, month);
    return cal.getTime();
    }

    /**
    * 获取当前日期后N年的日期
    * @param year 年份增量
    * @return 新的日期对象
    */
    public static Date GetAfterYear(int year) {
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.YEAR, year);
    return cal.getTime();
    }

    /**
    * 获取指定日期后N年的日期
    * @param date 目标日期
    * @param year 年份增量
    * @return 新的日期对象
    */
    public static Date GetAfterYear(Date date, int year) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.YEAR, year);
    return cal.getTime();
    }

    /**
    * 获取当前时间后N分钟的时间
    * @param minute 分钟增量
    * @return 新的日期对象
    */
    public static Date GetAfterMinute(int minute) {
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MINUTE, minute);
    return cal.getTime();
    }

    /**
    * 获取目标时间后N分钟的时间
    * @param date 目标时间
    * @param second 分钟增量
    * @return 新的日期对象
    */
    public static Date GetAfterMinute(Date date, int minute) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.MINUTE, minute);
    return cal.getTime();
    }

    /**
    * 获取当前时间后N秒的时间
    * @param second 秒增量
    * @return 新的日期对象
    */
    public static Date GetAfterSecond(int second) {
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.SECOND, second);
    return cal.getTime();
    }

    /**
    * 获取目标时间后N秒的时间
    * @param date 目标时间
    * @param second 秒增量
    * @return 新的日期对象
    */
    public static Date GetAfterSecond(Date date, int second) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.SECOND, second);
    return cal.getTime();
    }

    /**
    * 获取目标时间的年份
    * @param date 目标时间
    * @return 目标时间的年份
    */
    public static int GetDateYear(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    return cal.get(Calendar.YEAR);
    }

    /**
    * 获取目标时间的月份
    * @param date 目标时间的月份
    * @return 目标时间的月份
    */
    public static int GetDateMonth(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    return cal.get(Calendar.MONTH) + 1;
    }

    /**
    * 获取目标时间的日期
    * @param date 目标时间
    * @return 目标时间的日期
    */
    public static int GetDateDay(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    return cal.get(Calendar.DAY_OF_MONTH);
    }

    /**
    * 获取指定日期是星期几
    * @param date 目标日期
    * @return 指定日期为星期几
    */
    public static String GetDateDayOfWeek(Date date) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);

    switch(dayOfWeek) {
    case 1:
    return "星期日";
    case 2:
    return "星期一";
    case 3:
    return "星期二";
    case 4:
    return "星期三";
    case 5:
    return "星期四";
    case 6:
    return "星期五";
    case 7:
    return "星期六";
    default:
    return "";
    }
    }

    /**
    * 通过年、月、日创建新的时间对象
    * @param year 年
    * @param month 月
    * @param day 日
    * @return 新的时间对象
    */
    public static Date GetDate(int year, int month, int day) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month - 1, day, 0, 0, 0);
    return cal.getTime();
    }

    /**
    * 通过年、月、日、时、分、秒创建新的时间对象
    * @param year 年
    * @param month 月
    * @param day 日
    * @param hour 时
    * @param minute 分
    * @param second 秒
    * @return 新的时间对象
    */
    public static Date GetDate(int year, int month, int day, int hour, int minute, int second) {
    Calendar cal = Calendar.getInstance();
    cal.set(year, month - 1, day, hour, minute, second);
    return cal.getTime();
    }

    /**
    * 获取两个时间之间的相差的天数
    * @param start 起始时间
    * @param end 截止时间
    * @return 相差的天数
    */
    public static int GetDateDiff(Date start, Date end) {
    long ts = end.getTime() - start.getTime();
    return (int)(ts / (24 * 60 * 60 * 1000)) ;
    }

    /**
    * 获取两个时间之间相差的秒数
    * @param start 起始时间
    * @param end 截止时间
    * @return 相差的秒数
    */
    public static int GetDateDiffSecond(Date start, Date end) {
    long ts = end.getTime() - start.getTime();
    double seconds = ((double)ts / 1000);
    BigDecimal b = new BigDecimal(seconds);
    double d1 = b.setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue();
    return (int)d1;
    }

    }

  • 相关阅读:
    mysql 用户表结构设计,第三方登录
    linux centOS服务器部署ssh,免密码登陆linux
    linux SSH免密码登录远程服务器
    java反射机制学习笔记
    jvm知识
    类继承相关信息
    拦截器和过滤器的执行顺序和区别
    实现Map按key或按value排序
    喜欢的句子
    sql 性能优化相关--总结别人的总结,未做验证,先归纳
  • 原文地址:https://www.cnblogs.com/wuer888/p/7542776.html
Copyright © 2011-2022 走看看