DateUtils 日期工具类

DateUtils.java
package com.authine.cloudpivot.ext.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;


public class DateUtils {
    /**
     * 获取当月第一天
     * @param date
     * @return
     */
    public static Date getFirstDayDateOfMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMinimum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }

    /**
     * 获取当月最后一天
     * @param date
     * @return
     */
    public static Date getLastDayOfMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        final int last = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

        cal.set(Calendar.DAY_OF_MONTH, last);

        return cal.getTime();

    }

    /**
     * 获取下月当天时间
     * @param date
     * @return
     */
    public static Date getNextMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH,1);

        return cal.getTime();

    }

    /**
     * 获取上月当天时间
     * @param date
     * @return
     */
    public static Date getLastMonth(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.MONTH,-1);

        return cal.getTime();

    }

    /**
     * 获取当天开始时间
     * @param date
     * @return
     */
    public static Date getDayBegin(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DAY_OF_MONTH,0);

        //当天开始时间
        cal.set(Calendar.HOUR_OF_DAY,0);
        cal.set(Calendar.MINUTE,0);
        cal.set(Calendar.SECOND,0);
        cal.set(Calendar.MILLISECOND,0);

        return cal.getTime();

    }

    /**
     * 获取当天最后时间
     * @param date
     * @return
     */
    public static Date getDayEnd(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DAY_OF_MONTH,0);

        //当天结束时间
        cal.set(Calendar.HOUR_OF_DAY,23);
        cal.set(Calendar.MINUTE,59);
        cal.set(Calendar.SECOND,59);
        cal.set(Calendar.MILLISECOND,999);

        return cal.getTime();

    }

    /**
     * 获取后一天
     * @param date
     * @return
     */
    public static Date getNextDay(final Date date) {

        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        cal.add(Calendar.DATE,1);

        return cal.getTime();

    }

    /**
     * 判断当前日期是否是周末
     * @param date
     * @return
     */
    public static Boolean isWeekend(Date date){
        final Calendar cal = Calendar.getInstance();

        cal.setTime(date);

        if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY){
            return true;
        }

        return false;
    }

    /**
     * 获取某季度的第一天和最后一天
     *@param num 第几季度
     */
    public static String[] getCurrQuarter(int num) {

        String[] s = new String[2];

        String str = "";

        // 设置本年的季

        Calendar quarterCalendar = null;

        switch (num) {

            case 1: // 本年到现在经过了一个季度,在加上前4个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 3);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "01-01";

                s[1] = str;

                break;

            case 2: // 本年到现在经过了二个季度,在加上前三个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 6);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "04-01";

                s[1] = str;

                break;

            case 3:// 本年到现在经过了三个季度,在加上前二个季度

                quarterCalendar = Calendar.getInstance();

                quarterCalendar.set(Calendar.MONTH, 9);

                quarterCalendar.set(Calendar.DATE, 1);

                quarterCalendar.add(Calendar.DATE, -1);

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "07-01";

                s[1] = str;

                break;

            case 4:// 本年到现在经过了四个季度,在加上前一个季度

                quarterCalendar = Calendar.getInstance();

                str = DateUtils.formatDate(quarterCalendar.getTime(), "yyyy-MM-dd");

                s[0] = str.substring(0, str.length() - 5) + "10-01";

                s[1] = str.substring(0, str.length() - 5) + "12-31";

                break;

        }

        return s;

    }

    /**
     * 用途:以指定的格式格式化日期字符串
     * @param pattern 字符串的格式
     * @param currentDate 被格式化日期
     * @return String 已格式化的日期字符串
     */
    public static String formatDate(Date currentDate, String pattern){

        if(currentDate == null || "".equals(pattern) || pattern == null){
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(pattern);

        return sdf.format(currentDate);

    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值