• 工具类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;
    }

    }

  • 相关阅读:
    VS2010插件及快捷键设置
    在Windows程序中启用console输出-2016.01.04
    使用VAssistX给文件和函数添加注释-2015.12.31
    windows在远程桌面连接中使用命令行参数
    windows网络编程-2015.12.29
    grep使用
    linux程序调试常用命令
    vim使用笔记
    infusion度量金字塔数据解释
    MVc Forms Membership rolemanage 角色权限验证管理
  • 原文地址:https://www.cnblogs.com/wuer888/p/7542776.html
Copyright © 2020-2023  润新知