|
|
@@ -6,17 +6,17 @@ import java.util.Calendar;
|
|
|
import java.util.Date;
|
|
|
|
|
|
public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
-
|
|
|
- public static final String YEAR_SPAN = "yearSpan";
|
|
|
-
|
|
|
- public static final String QUARTER_SPAN = "quarterSpan";
|
|
|
-
|
|
|
- public static final String MONTH_SPAN = "monthSpan";
|
|
|
-
|
|
|
- public static final String WEEK_SPAN = "weekSpan";
|
|
|
-
|
|
|
- public static final String DAY_SPAN = "daySpan";
|
|
|
-
|
|
|
+
|
|
|
+ public static final String YEAR_SPAN = "yearSpan";
|
|
|
+
|
|
|
+ public static final String QUARTER_SPAN = "quarterSpan";
|
|
|
+
|
|
|
+ public static final String MONTH_SPAN = "monthSpan";
|
|
|
+
|
|
|
+ public static final String WEEK_SPAN = "weekSpan";
|
|
|
+
|
|
|
+ public static final String DAY_SPAN = "daySpan";
|
|
|
+
|
|
|
/**
|
|
|
* Determines how two dates compare up to no more than the specified most
|
|
|
* significant field.
|
|
|
@@ -83,344 +83,343 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
public static long truncatedMinuteDiffTo(final Date date1, final Date date2) {
|
|
|
return truncatedDiffTo(date1, date2, Calendar.MINUTE) / 60000;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * 得到某年某周的第一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param week
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfWeek(int year, int week) {
|
|
|
- week = week - 1;
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.set(Calendar.YEAR, year);
|
|
|
- calendar.set(Calendar.MONTH, Calendar.JANUARY);
|
|
|
- calendar.set(Calendar.DATE, 1);
|
|
|
-
|
|
|
- Calendar cal = (Calendar) calendar.clone();
|
|
|
- cal.add(Calendar.DATE, week * 7);
|
|
|
-
|
|
|
- return getFirstDayOfWeek(cal.getTime());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 得到某年某周的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param week
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfWeek(int year, int week) {
|
|
|
- week = week - 1;
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.set(Calendar.YEAR, year);
|
|
|
- calendar.set(Calendar.MONTH, Calendar.JANUARY);
|
|
|
- calendar.set(Calendar.DATE, 1);
|
|
|
- Calendar cal = (Calendar) calendar.clone();
|
|
|
- cal.add(Calendar.DATE, week * 7);
|
|
|
-
|
|
|
- return getLastDayOfWeek(cal.getTime());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 取得当前日期所在周的第一天
|
|
|
- *
|
|
|
- * @param date
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfWeek(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setFirstDayOfWeek(Calendar.SUNDAY);
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.set(Calendar.DAY_OF_WEEK,
|
|
|
- calendar.getFirstDayOfWeek()); // Sunday
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 取得当前日期所在周的最后一天
|
|
|
- *
|
|
|
- * @param date
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfWeek(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setFirstDayOfWeek(Calendar.SUNDAY);
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.set(Calendar.DAY_OF_WEEK,
|
|
|
- calendar.getFirstDayOfWeek() + 6); // Saturday
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 取得当前日期所在周的前一周最后一天
|
|
|
- *
|
|
|
- * @param date
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfLastWeek(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- return getLastDayOfWeek(calendar.get(Calendar.YEAR),
|
|
|
- calendar.get(Calendar.WEEK_OF_YEAR) - 1);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的月的第一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param month
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfMonth(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.set(calendar.get(Calendar.YEAR),
|
|
|
- calendar.get(Calendar.MONTH), 1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定年月的月的第一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param month
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfMonth(Integer year, Integer month) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- if (year == null) {
|
|
|
- year = calendar.get(Calendar.YEAR);
|
|
|
- }
|
|
|
- if (month == null) {
|
|
|
- month = calendar.get(Calendar.MONTH);
|
|
|
- }
|
|
|
- calendar.set(year, month, 1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的月的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param month
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfMonth(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.set(calendar.get(Calendar.YEAR),
|
|
|
- calendar.get(Calendar.MONTH), 1);
|
|
|
- calendar.roll(Calendar.DATE, -1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定年月的月的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param month
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfMonth(Integer year, Integer month) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- if (year == null) {
|
|
|
- year = calendar.get(Calendar.YEAR);
|
|
|
- }
|
|
|
- if (month == null) {
|
|
|
- month = calendar.get(Calendar.MONTH);
|
|
|
- }
|
|
|
- calendar.set(year, month, 1);
|
|
|
- calendar.roll(Calendar.DATE, -1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的上个月的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param month
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfLastMonth(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- calendar.set(calendar.get(Calendar.YEAR),
|
|
|
- calendar.get(Calendar.MONTH) - 1, 1);
|
|
|
- calendar.roll(Calendar.DATE, -1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的季的第一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfQuarter(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- return getFirstDayOfQuarter(calendar.get(Calendar.YEAR),
|
|
|
- getQuarterOfYear(date));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定年季的季的第一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getFirstDayOfQuarter(Integer year, Integer quarter) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- Integer month = new Integer(0);
|
|
|
- if (quarter == 1) {
|
|
|
- month = 1 - 1;
|
|
|
- } else if (quarter == 2) {
|
|
|
- month = 4 - 1;
|
|
|
- } else if (quarter == 3) {
|
|
|
- month = 7 - 1;
|
|
|
- } else if (quarter == 4) {
|
|
|
- month = 10 - 1;
|
|
|
- } else {
|
|
|
- month = calendar.get(Calendar.MONTH);
|
|
|
- }
|
|
|
- return getFirstDayOfMonth(year, month);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的季的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfQuarter(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- return getLastDayOfQuarter(calendar.get(Calendar.YEAR),
|
|
|
- getQuarterOfYear(date));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定年季的季的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfQuarter(Integer year, Integer quarter) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- Integer month = new Integer(0);
|
|
|
- if (quarter == 1) {
|
|
|
- month = 3 - 1;
|
|
|
- } else if (quarter == 2) {
|
|
|
- month = 6 - 1;
|
|
|
- } else if (quarter == 3) {
|
|
|
- month = 9 - 1;
|
|
|
- } else if (quarter == 4) {
|
|
|
- month = 12 - 1;
|
|
|
- } else {
|
|
|
- month = calendar.get(Calendar.MONTH);
|
|
|
- }
|
|
|
- return getLastDayOfMonth(year, month);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的上一季的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfLastQuarter(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- return getLastDayOfLastQuarter(calendar.get(Calendar.YEAR),
|
|
|
- getQuarterOfYear(date));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定年季的上一季的最后一天
|
|
|
- *
|
|
|
- * @param year
|
|
|
- * @param quarter
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static Date getLastDayOfLastQuarter(Integer year, Integer quarter) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- Integer month = new Integer(0);
|
|
|
- if (quarter == 1) {
|
|
|
- month = 12 - 1;
|
|
|
- } else if (quarter == 2) {
|
|
|
- month = 3 - 1;
|
|
|
- } else if (quarter == 3) {
|
|
|
- month = 6 - 1;
|
|
|
- } else if (quarter == 4) {
|
|
|
- month = 9 - 1;
|
|
|
- } else {
|
|
|
- month = calendar.get(Calendar.MONTH);
|
|
|
- }
|
|
|
- return getLastDayOfMonth(year, month);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回指定日期的季度
|
|
|
- *
|
|
|
- * @param date
|
|
|
- * @return
|
|
|
- */
|
|
|
- public static int getQuarterOfYear(Date date) {
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(date);
|
|
|
- return calendar.get(Calendar.MONTH) / 3 + 1;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回昨天日期
|
|
|
- * @return date
|
|
|
- */
|
|
|
- public static Date getYesterday(){
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.add(Calendar.DATE, -1);
|
|
|
- return calendar.getTime();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 返回前一年最后一天
|
|
|
- * @param date
|
|
|
- * @return
|
|
|
- */
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到某年某周的第一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param week
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfWeek(int year, int week) {
|
|
|
+ week = week - 1;
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.YEAR, year);
|
|
|
+ calendar.set(Calendar.MONTH, Calendar.JANUARY);
|
|
|
+ calendar.set(Calendar.DATE, 1);
|
|
|
+ Calendar cal = (Calendar) calendar.clone();
|
|
|
+ cal.add(Calendar.DATE, week * 7);
|
|
|
+
|
|
|
+ return getFirstDayOfWeek(cal.getTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 得到某年某周的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param week
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfWeek(int year, int week) {
|
|
|
+ week = week - 1;
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.set(Calendar.YEAR, year);
|
|
|
+ calendar.set(Calendar.MONTH, Calendar.JANUARY);
|
|
|
+ calendar.set(Calendar.DATE, 1);
|
|
|
+ Calendar cal = (Calendar) calendar.clone();
|
|
|
+ cal.add(Calendar.DATE, week * 7);
|
|
|
+
|
|
|
+ return getLastDayOfWeek(cal.getTime());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得当前日期所在周的第一天
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfWeek(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setFirstDayOfWeek(Calendar.SUNDAY);
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek()); // Sunday
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得当前日期所在周的最后一天
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfWeek(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setFirstDayOfWeek(Calendar.SUNDAY);
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(Calendar.DAY_OF_WEEK, calendar.getFirstDayOfWeek() + 6); // Saturday
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 取得当前日期所在周的前一周最后一天
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfLastWeek(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ return getLastDayOfWeek(calendar.get(Calendar.YEAR), calendar.get(Calendar.WEEK_OF_YEAR) - 1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的月的第一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param month
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfMonth(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定年月的月的第一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param month
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfMonth(Integer year, Integer month) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ if (year == null) {
|
|
|
+ year = calendar.get(Calendar.YEAR);
|
|
|
+ }
|
|
|
+ if (month == null) {
|
|
|
+ month = calendar.get(Calendar.MONTH);
|
|
|
+ }
|
|
|
+ calendar.set(year, month, 1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的月的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param month
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfMonth(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), 1);
|
|
|
+ calendar.roll(Calendar.DATE, -1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定年月的月的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param month
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfMonth(Integer year, Integer month) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ if (year == null) {
|
|
|
+ year = calendar.get(Calendar.YEAR);
|
|
|
+ }
|
|
|
+ if (month == null) {
|
|
|
+ month = calendar.get(Calendar.MONTH);
|
|
|
+ }
|
|
|
+ calendar.set(year, month, 1);
|
|
|
+ calendar.roll(Calendar.DATE, -1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的上个月的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param month
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfLastMonth(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) - 1, 1);
|
|
|
+ calendar.roll(Calendar.DATE, -1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的季的第一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfQuarter(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ return getFirstDayOfQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定年季的季的第一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getFirstDayOfQuarter(Integer year, Integer quarter) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ Integer month = new Integer(0);
|
|
|
+ if (quarter == 1) {
|
|
|
+ month = 1 - 1;
|
|
|
+ } else if (quarter == 2) {
|
|
|
+ month = 4 - 1;
|
|
|
+ } else if (quarter == 3) {
|
|
|
+ month = 7 - 1;
|
|
|
+ } else if (quarter == 4) {
|
|
|
+ month = 10 - 1;
|
|
|
+ } else {
|
|
|
+ month = calendar.get(Calendar.MONTH);
|
|
|
+ }
|
|
|
+ return getFirstDayOfMonth(year, month);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的季的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfQuarter(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ return getLastDayOfQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定年季的季的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfQuarter(Integer year, Integer quarter) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ Integer month = new Integer(0);
|
|
|
+ if (quarter == 1) {
|
|
|
+ month = 3 - 1;
|
|
|
+ } else if (quarter == 2) {
|
|
|
+ month = 6 - 1;
|
|
|
+ } else if (quarter == 3) {
|
|
|
+ month = 9 - 1;
|
|
|
+ } else if (quarter == 4) {
|
|
|
+ month = 12 - 1;
|
|
|
+ } else {
|
|
|
+ month = calendar.get(Calendar.MONTH);
|
|
|
+ }
|
|
|
+ return getLastDayOfMonth(year, month);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的上一季的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfLastQuarter(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ return getLastDayOfLastQuarter(calendar.get(Calendar.YEAR), getQuarterOfYear(date));
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定年季的上一季的最后一天
|
|
|
+ *
|
|
|
+ * @param year
|
|
|
+ * @param quarter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getLastDayOfLastQuarter(Integer year, Integer quarter) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ Integer month = new Integer(0);
|
|
|
+ if (quarter == 1) {
|
|
|
+ month = 12 - 1;
|
|
|
+ } else if (quarter == 2) {
|
|
|
+ month = 3 - 1;
|
|
|
+ } else if (quarter == 3) {
|
|
|
+ month = 6 - 1;
|
|
|
+ } else if (quarter == 4) {
|
|
|
+ month = 9 - 1;
|
|
|
+ } else {
|
|
|
+ month = calendar.get(Calendar.MONTH);
|
|
|
+ }
|
|
|
+ return getLastDayOfMonth(year, month);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回指定日期的季度
|
|
|
+ *
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static int getQuarterOfYear(Date date) {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date);
|
|
|
+ return calendar.get(Calendar.MONTH) / 3 + 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回昨天日期
|
|
|
+ * @return date
|
|
|
+ */
|
|
|
+ public static Date getYesterday() {
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.add(Calendar.DATE, -1);
|
|
|
+ setMidnight(calendar);
|
|
|
+ return calendar.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回前一年最后一天
|
|
|
+ * @param date
|
|
|
+ * @return
|
|
|
+ */
|
|
|
public static Date getLastDayOfLastYear(Date date) {
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
return getLastDayOfYear(calendar.get(Calendar.YEAR) - 1);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 返回指定年的最后一天
|
|
|
* @param year
|
|
|
* @return
|
|
|
*/
|
|
|
- public static Date getLastDayOfYear(int year){
|
|
|
+ public static Date getLastDayOfYear(int year) {
|
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
calendar.set(Calendar.YEAR, year - 1);
|
|
|
calendar.roll(Calendar.DAY_OF_YEAR, -1);
|
|
|
+ setMidnight(calendar);
|
|
|
return calendar.getTime();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 格式化时间
|
|
|
* @param date
|
|
|
* @param pattern
|
|
|
* @return
|
|
|
*/
|
|
|
- public static String formatDate(Date date,String pattern){
|
|
|
+ public static String formatDate(Date date, String pattern) {
|
|
|
SimpleDateFormat format = new SimpleDateFormat(pattern);
|
|
|
return format.format(date);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 解析日期
|
|
|
* @param source
|
|
|
@@ -428,8 +427,33 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|
|
* @return
|
|
|
* @throws ParseException
|
|
|
*/
|
|
|
- public static Date parseDate(String source,String pattern) throws ParseException{
|
|
|
+ public static Date parseDate(String source, String pattern) throws ParseException {
|
|
|
SimpleDateFormat format = new SimpleDateFormat(pattern);
|
|
|
return format.parse(source);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 时分秒毫秒归零
|
|
|
+ * @param c
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Calendar setMidnight(Calendar c) {
|
|
|
+ c.set(Calendar.HOUR_OF_DAY, 0);
|
|
|
+ c.set(Calendar.MINUTE, 0);
|
|
|
+ c.set(Calendar.SECOND, 0);
|
|
|
+ c.set(Calendar.MILLISECOND, 0);
|
|
|
+ return c;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 时分秒毫秒归零
|
|
|
+ * @param c
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Date getEarlyToday() {
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
+ setMidnight(c);
|
|
|
+ return c.getTime();
|
|
|
+ }
|
|
|
+
|
|
|
}
|