/* * 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)); } }