日期计算工具类

/* 
 * CopyRright (c) 2013, Minxin and/or its affiliates. All rights reserved.
 */
package com.minxinloan.common.utils;

import java.util.Calendar;
import java.util.Date;

/**
 * 日期计算工具类
 *
 * @author gejb
 * @since 2013-12-18
 */
public class CalendarUtil {
    /**
     * 获取指定日期的当月第一天日期
     *
     * @param date 指定日期
     * @return 当月第一天日期
     */
    public static Date getFirstDayOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, 1); // 设置当前月的1号
        return calendar.getTime();
    }
    /**
     * 获取当前日期
     *
     * @param date 指定日期
     * @return 当月第一天日期
     */
    public static String getCurrentDate() {
        java.util.Calendar c=java.util.Calendar.getInstance();    
        java.text.SimpleDateFormat f=new java.text.SimpleDateFormat("yyyy-MM-dd");    
        return f.format(c.getTime());   
    }

    /**
     * 获取指定日期当月最后一天日期
     *
     * @param date 指定日期
     * @return 当月最后一天日期
     */
    public static Date getLastDayOfMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, 1);     // 设置当前月的1号
        calendar.add(Calendar.MONTH, 1);   // 加一个月,变为下月的1号
        calendar.add(Calendar.DATE, -1);    // 减去一天,变为当前月的最后一天
        return calendar.getTime();
    }

    /**
     * 获取指定日期上月第一天日期
     *
     * @param date 指定日期
     * @return 上月第一天日期
     */
    public static Date getFirstDayOfPreviousMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, 1);     // 设置当前月的1号
        calendar.add(Calendar.MONTH, -1);  // 减一个月,变为上月的1号
        return calendar.getTime();
    }

    /**
     * 获取指定日期的上月最后一天
     *
     * @param date 指定日期
     * @return 上月最后一天日期
     */
    public static Date getLastDayOfPreviousMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, 1);     // 设置当前月的1号
        calendar.add(Calendar.DATE, -1);    // 减一天,变为上月的1号
        return calendar.getTime();
    }

    /**
     * 获取指定日期的下月第一天日期
     *
     * @param date 指定日期
     * @return 下月第一天日期
     */
    public static Date getFirstDayOfNextMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.MONTH, 1);    // 加一个月
        calendar.set(Calendar.DATE, 1);     // 设置当前月第一天
        return calendar.getTime();
    }

    /**
     * 获取指定日期下月最后一天的日期
     *
     * @param date 指定日期
     * @return 下月最后一天的日期
     */
    public static Date getLastDayOfNextMonth(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.DATE, 1);     // 设置当前月的1号
        calendar.add(Calendar.MONTH, 2);   // 加两个月,变为下下月的1号
        calendar.add(Calendar.DATE, -1);    // 减一天,变为下月的最后一天
        return calendar.getTime();
    }

    /**
     * 获取两个日期相差天数,算上当天
     *
     * @param fromDate
     * @param endDate
     * @return 相差天数
     */
    public static int getIntervalDays(Date fromDate, Date endDate) {
        if (null == fromDate || null == endDate) {
            return -1;
        }
        long intervalMilli = endDate.getTime() - fromDate.getTime();
        return (int) (intervalMilli / (24 * 60 * 60 * 1000));
    }
}

 

posted @ 2016-04-05 10:58  也许还年轻  阅读(231)  评论(0编辑  收藏  举报