From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 20 五月 2020 17:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2

---
 utils/src/main/java/org/yeshi/utils/DateUtil.java |  536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 487 insertions(+), 49 deletions(-)

diff --git a/utils/src/main/java/org/yeshi/utils/DateUtil.java b/utils/src/main/java/org/yeshi/utils/DateUtil.java
index 3cfbc90..915a83b 100644
--- a/utils/src/main/java/org/yeshi/utils/DateUtil.java
+++ b/utils/src/main/java/org/yeshi/utils/DateUtil.java
@@ -7,6 +7,8 @@
 import java.util.Date;
 import java.util.List;
 
+import org.yeshi.utils.entity.DateInfo;
+
 public class DateUtil {
 
 	public static String dateDiff(String startTime, String endTime) {
@@ -37,7 +39,7 @@
 
 	public static String dateDiff2(Date startTime, Date endTime) throws Exception {
 
-		String datatime = 0 + "澶�" + 0 + "灏忔椂" + 0 + "鍒嗛挓";
+		String datatime = "0鍒�";
 
 		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
 		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
@@ -45,14 +47,120 @@
 
 		// 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
 		long diff = endTime.getTime() - startTime.getTime();
-
 		long day = diff / nd;// 璁$畻宸灏戝ぉ
 		long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃�
 		long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽�
 
-		datatime = day + "澶�" + hour + "灏忔椂" + min + "鍒嗛挓";
-
+		if (day > 0) {
+			datatime = day + "澶�" + hour + "鏃�" + min + "鍒�";
+		} else {
+			if (hour > 0) {
+				datatime = hour + "鏃�" + min + "鍒�";
+			} else {
+				if (min < 0)
+					min = 0;
+				datatime = min + "鍒�";
+			}
+		}
 		return datatime;
+	}
+
+	public static DateInfo dateDiff3(long startTime, long endTime) throws Exception {
+		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
+		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+		long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+
+		// 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
+		long diff = endTime - startTime;
+
+		int day = (int) (diff / nd);// 璁$畻宸灏戝ぉ
+		long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃�
+		long minute = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽�
+		long second = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - minute * 60); // 璁$畻宸灏戠
+
+		DateInfo dateInfo = new DateInfo();
+		dateInfo.setDay(day);
+		dateInfo.setHour(hour);
+		dateInfo.setMinute(minute);
+		dateInfo.setSecond(second);
+		return dateInfo;
+	}
+
+	public static String dateDiff4(Date startTime, Date endTime) throws Exception {
+
+		String datatime = "0鍒�";
+
+		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
+		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+		long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+
+		// 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
+		long diff = endTime.getTime() - startTime.getTime();
+		long day = diff / nd;// 璁$畻宸灏戝ぉ
+		long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃�
+		long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽�
+
+		if (day > 0) {
+			datatime = day + "澶�";
+		} else {
+			if (hour > 0) {
+				datatime = hour + "鏃�";
+			} else {
+				if (min < 0)
+					min = 0;
+				datatime = min + "鍒�";
+			}
+		}
+		return datatime;
+	}
+
+	public static String dateDiff5(Date startTime, Date endTime) throws Exception {
+		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
+		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+		long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+
+		// 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
+		long diff = endTime.getTime() - startTime.getTime();
+		long day = diff / nd;// 璁$畻宸灏戝ぉ
+		long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃�
+		long min = diff % nd % nh / nm;// 璁$畻宸灏戝垎閽�
+		long second = (diff / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); // 璁$畻宸灏戠
+
+		String datatime = "";
+		if (day > 0) {
+			datatime = day + "澶�";
+		} else if (hour > 0) {
+			datatime = hour + "灏忔椂";
+		} else if (min > 0) {
+			datatime = min + "鍒嗛挓";
+		} else if (second > 0) {
+			datatime = second + "绉�";
+		}
+		return datatime;
+	}
+
+	public static long dateDiffMin(Date startTime, Date endTime) throws Exception {
+		long nm = 1000 * 60;// 涓�鍒嗛挓鐨勬绉掓暟
+		long nh = 1000 * 60 * 60;// 涓�灏忔椂鐨勬绉掓暟
+		long nd = 1000 * 24 * 60 * 60;// 涓�澶╃殑姣鏁�
+
+		// 鑾峰緱涓や釜鏃堕棿鐨勬绉掓椂闂村樊寮�
+		long diff = endTime.getTime() - startTime.getTime();
+		long day = diff / nd;// 璁$畻宸灏戝ぉ
+		long hour = diff % nd / nh;// 璁$畻宸灏戝皬鏃�
+		long min = diff % nd % nh / nm + day * 24 * 60 + hour * 60;// 璁$畻宸灏戝垎閽�
+		return min;
+	}
+
+	/**
+	 * 閫氳繃鏃堕棿绉掓绉掓暟鍒ゆ柇涓や釜鏃堕棿鐨勯棿闅�
+	 * 
+	 * @param date1
+	 * @param date2
+	 * @return
+	 */
+	public static int differentDaysByMillisecond(Date start, Date end) {
+		return (int) ((end.getTime() - start.getTime()) / (1000 * 3600 * 24));
 	}
 
 	public String transferLongToDate(String dateFormat, Long millSec) {
@@ -94,87 +202,284 @@
 			return false;
 		}
 	}
-	
-	
+
 	/**
-	 * 楠岃瘉鏄惁灞炰簬鍚屼竴澶�
+	 * 鍒ゆ柇鏄惁鍚屼竴涓湀
 	 * 
-	 * @param Date1
-	 * @param Date2
+	 * @param date1
+	 * @param date2
 	 * @return
 	 */
 	public static boolean isSameMonth(Date date1, Date date2) {
-		if (date1 != null && date2 != null) {
-			Calendar cal1 = Calendar.getInstance();
-			cal1.setTime(date1);
-			Calendar cal2 = Calendar.getInstance();
-			cal2.setTime(date2);
-			return isSameMonth(cal1, cal2);
-		} else {
-			return false;
-		}
+		Calendar calendar1 = Calendar.getInstance();
+		calendar1.setTime(date1);
+		Calendar calendar2 = Calendar.getInstance();
+		calendar2.setTime(date2);
+		int year1 = calendar1.get(Calendar.YEAR);
+		int year2 = calendar2.get(Calendar.YEAR);
+		int month1 = calendar1.get(Calendar.MONTH);
+		int month2 = calendar2.get(Calendar.MONTH);
+		System.out.println(year1 + "  " + month1);
+		System.out.println(year2 + "  " + month2);
+		return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR)
+				&& calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH);
 	}
-	
-	/**
-	 * 楠岃瘉鏄惁灞炰簬鍚屽勾鍚屾湀
-	 * 
-	 * @param cal1
-	 * @param cal2
-	 * @return
-	 */
-	public static boolean isSameMonth(Calendar cal1, Calendar cal2) {
-		if (cal1 != null && cal2 != null) {
-			return cal1.get(0) == cal2.get(0) && cal1.get(1) == cal2.get(1) && cal1.get(6) == cal2.get(6);
-		} else {
-			return false;
-		}
-	}
-	
 
 	/**
 	 * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡
 	 * 
-	 * @param num
-	 *            澧炲姞鐨勫ぉ鏁�
-	 * @param nowDate
-	 *            鍒涘缓鏃堕棿
+	 * @param num     澧炲姞鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
 	 * @return
 	 * @throws ParseException
 	 */
 	public static String plusDay(int num, String nowDate) throws ParseException {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 		Date currdate = format.parse(nowDate);
-	
+
 		Calendar ca = Calendar.getInstance();
 		ca.setTime(currdate);
 		ca.add(Calendar.DATE, num);
-		
+
 		return format.format(ca.getTime());
+	}
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     澧炲姞鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static Date plusDayReturnDate(int num, String nowDate) throws ParseException {
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+		Date currdate = format.parse(nowDate);
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, num);
+		return ca.getTime();
+	}
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     澧炲姞鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static String plusDay(int num, Date currdate) throws ParseException {
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, num);
+
+		return format.format(ca.getTime());
+	}
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍔犱笂澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     澧炲姞鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static Date plusDayDate(int num, Date currdate) {
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, num);
+		return ca.getTime();
+	}
+
+	/**
+	 * 鍔犱笂鏈堜唤
+	 * 
+	 * @param currdate
+	 * @param num
+	 * @return
+	 */
+	public static Date plusMonths(Date currdate, int num) {
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.MONTH, num);
+		return ca.getTime();
+	}
+
+	/**
+	 * 鍔犱笂骞翠唤
+	 * 
+	 * @param currdate
+	 * @param num
+	 * @return
+	 */
+	public static Date plusYears(Date currdate, int num) {
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.YEAR, num);
+		return ca.getTime();
+	}
+
+	/**
+	 * 鍑忓幓鏈堜唤
+	 * 
+	 * @param currdate
+	 * @param num
+	 * @return
+	 */
+	public static Date reduceMonth(Date currdate, int num) {
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.MONTH, -num);
+		return ca.getTime();
+	}
+	
+	public static Date reduceDay(Date currdate, int num) {
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, -num);
+		return ca.getTime();
 	}
 	
 	/**
 	 * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡
 	 * 
-	 * @param num
-	 *            鍑忓幓鐨勫ぉ鏁�
-	 * @param nowDate
-	 *            鍒涘缓鏃堕棿
+	 * @param num     鍑忓幓鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
 	 * @return
 	 * @throws ParseException
 	 */
 	public static String reduceDay(int num, String nowDate) throws ParseException {
 		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 		Date currdate = format.parse(nowDate);
-	
+
 		Calendar ca = Calendar.getInstance();
 		ca.setTime(currdate);
 		ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩
-		
+
 		return format.format(ca.getTime());
 	}
-	
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     鍑忓幓鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static String reduceDay2(int num, Date date) throws ParseException {
+		// 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂�
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+		// 鑾峰彇String绫诲瀷鐨勬椂闂�
+		String date_str = format.format(date);
+		Date currdate = format.parse(date_str);
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩
+
+		return format.format(ca.getTime());
+	}
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     鍑忓幓鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static Date reduceDay(int num, Date date) throws ParseException {
+		// 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂�
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+		// 鑾峰彇String绫诲瀷鐨勬椂闂�
+		String date_str = format.format(date);
+		Date currdate = format.parse(date_str);
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩
+
+		return ca.getTime();
+	}
+
+	/**
+	 * 鎸囧畾鏃ユ湡鍑忓幓澶╂暟鍚庣殑鏃ユ湡
+	 * 
+	 * @param num     鍑忓幓鐨勫ぉ鏁�
+	 * @param nowDate 鍒涘缓鏃堕棿
+	 * @return
+	 * @throws ParseException
+	 */
+	public static String reduceDayTostring(int num, Date date) throws ParseException {
+		// 璁剧疆瑕佽幏鍙栧埌浠�涔堟牱鐨勬椂闂�
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+		// 鑾峰彇String绫诲瀷鐨勬椂闂�
+		String date_str = format.format(date);
+		Date currdate = format.parse(date_str);
+
+		Calendar ca = Calendar.getInstance();
+		ca.setTime(currdate);
+		ca.add(Calendar.DATE, -num); // 鏃ユ湡鍑� 濡傛灉涓嶅鍑忎細灏嗘湀鍙樺姩
+		return format.format(ca.getTime());
+	}
+
+	/**
+	 * 璁$畻涓や釜鏃ユ湡涔嬮棿鐩稿樊鐨勫ぉ鏁�
+	 * 
+	 * @param smdate 杈冨皬鐨勬椂闂�
+	 * @param bdate  杈冨ぇ鐨勬椂闂�
+	 * @return 鐩稿樊澶╂暟
+	 * @throws ParseException calendar 瀵规棩鏈熻繘琛屾椂闂存搷浣� getTimeInMillis() 鑾峰彇鏃ユ湡鐨勬绉掓樉绀哄舰寮�
+	 */
+	public static int daysBetween(Date minDate, Date maxDate) throws ParseException {
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(minDate);
+		long minTime = cal.getTimeInMillis();
+		cal.setTime(maxDate);
+		long maxTime = cal.getTimeInMillis();
+		long between_days = (maxTime - minTime) / (1000 * 3600 * 24);
+		return Integer.parseInt(String.valueOf(between_days));
+	}
+
+	/**
+	 * 瀛楃涓叉棩鏈熸牸寮忕殑璁$畻
+	 * 
+	 * @param smdate
+	 * @param bdate
+	 * @return 鍗曚綅澶╂暟
+	 * @throws ParseException
+	 */
+	public static int daysBetween2(Date minDate, Date maxDate) throws ParseException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		return daysBetween(sdf.format(minDate), sdf.format(maxDate));
+	}
+
+	/**
+	 * 瀛楃涓叉棩鏈熸牸寮忕殑璁$畻
+	 * 
+	 * @param smdate
+	 * @param bdate
+	 * @return
+	 * @throws ParseException
+	 */
+	public static int daysBetween(String minDate, String maxDate) throws ParseException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(sdf.parse(minDate));
+		long minTime = cal.getTimeInMillis();
+		cal.setTime(sdf.parse(maxDate));
+		long maxTime = cal.getTimeInMillis();
+		long between_days = (maxTime - minTime) / (1000 * 3600 * 24);
+		return Integer.parseInt(String.valueOf(between_days));
+	}
+
 	/**
 	 * 杩斿洖涓棿鏃ユ湡
+	 * 
 	 * @param startTime
 	 * @param endTime
 	 * @return
@@ -198,8 +503,141 @@
 				break; // 鏃堕棿缁撴潫
 			}
 		}
-		
 		return listDate;
 	}
-	
+
+	/**
+	 * 闅忔満鍑忓幓鍑犲垎閽�
+	 * 
+	 * @param date
+	 * @param min  闅忔満娣诲姞鐨勫垎閽熸暟
+	 * @return
+	 */
+	public static Date reduceRandomMinute(Date date, int min) {
+		long rand = (long) (Math.random() * 1000 * 60 * min);
+		long time = date.getTime() - rand;
+		return new Date(time);
+	}
+
+	/**
+	 * 璁$畻涓ゆ椂闂存湀宸�
+	 * 
+	 * @param startDate <String>
+	 * @param endDate   <String>
+	 * @return int
+	 * @throws ParseException
+	 */
+	public static int getMonthSpace(String startDate, String endDate) throws ParseException {
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+		return getMonthSpace(sdf.parse(startDate), sdf.parse(endDate));
+	}
+
+	/**
+	 * 璁$畻涓ゆ椂闂存湀宸�
+	 * 
+	 * @param startDate <String>
+	 * @param endDate   <String>
+	 * @return int
+	 * @throws ParseException
+	 */
+	public static int getMonthSpace(Date startDate, Date endDate) {
+		Calendar start = Calendar.getInstance();
+		Calendar end = Calendar.getInstance();
+		start.setTime(startDate);
+		end.setTime(endDate);
+		int result = end.get(Calendar.MONTH) - start.get(Calendar.MONTH);
+		int month = (end.get(Calendar.YEAR) - start.get(Calendar.YEAR)) * 12;
+		return Math.abs(month + result);
+	}
+
+	public static Date getTodayStartTime() {
+		Calendar todayStart = Calendar.getInstance();
+		todayStart.set(Calendar.HOUR_OF_DAY, 0);
+		todayStart.set(Calendar.MINUTE, 0);
+		todayStart.set(Calendar.SECOND, 0);
+		todayStart.set(Calendar.MILLISECOND, 0);
+		return todayStart.getTime();
+	}
+
+	public static Date getTodayEndTime() {
+		Calendar todayEnd = Calendar.getInstance();
+		todayEnd.set(Calendar.HOUR_OF_DAY, 23);
+		todayEnd.set(Calendar.MINUTE, 59);
+		todayEnd.set(Calendar.SECOND, 59);
+		todayEnd.set(Calendar.MILLISECOND, 999);
+		return todayEnd.getTime();
+	}
+
+	/**
+	 * 鑾峰彇鎸囧畾骞存湀鐨勭涓�澶�
+	 * 
+	 * @param yearMonth
+	 * @return
+	 */
+	public static String getFirstDayOfMonth(String yearMonth) {
+		int year = Integer.parseInt(yearMonth.split("-")[0]); // 骞�
+		int month = Integer.parseInt(yearMonth.split("-")[1]); // 鏈�
+		return getFirstDayOfMonth(year, month);
+	}
+
+	/**
+	 * 鑾峰彇鎸囧畾骞存湀鐨勭涓�澶�
+	 * 
+	 * @param year
+	 * @param month
+	 * @return
+	 */
+	public static String getFirstDayOfMonth(int year, int month) {
+		Calendar cal = Calendar.getInstance();
+		// 璁剧疆骞翠唤
+		cal.set(Calendar.YEAR, year);
+		// 璁剧疆鏈堜唤
+		cal.set(Calendar.MONTH, month - 1);
+		// 鑾峰彇鏌愭湀鏈�灏忓ぉ鏁�
+		int firstDay = cal.getMinimum(Calendar.DATE);
+		// 璁剧疆鏃ュ巻涓湀浠界殑鏈�灏忓ぉ鏁�
+		cal.set(Calendar.DAY_OF_MONTH, firstDay);
+		// 鏍煎紡鍖栨棩鏈�
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		return sdf.format(cal.getTime());
+	}
+
+	/**
+	 * 鑾峰彇鎸囧畾骞存湀鐨勬渶鍚庝竴澶�
+	 * 
+	 * @param yearMonth
+	 * @return
+	 */
+	public static String getLastDayOfMonth(String yearMonth) {
+		int year = Integer.parseInt(yearMonth.split("-")[0]); // 骞�
+		int month = Integer.parseInt(yearMonth.split("-")[1]); // 鏈�
+		return getLastDayOfMonth(year, month);
+	}
+
+	/**
+	 * 鑾峰彇鎸囧畾骞存湀鐨勬渶鍚庝竴澶�
+	 * 
+	 * @param year
+	 * @param month
+	 * @return
+	 */
+	public static String getLastDayOfMonth(int year, int month) {
+		Calendar cal = Calendar.getInstance();
+		// 璁剧疆骞翠唤
+		cal.set(Calendar.YEAR, year);
+		// 璁剧疆鏈堜唤
+		cal.set(Calendar.MONTH, month - 1);
+		// 鑾峰彇鏌愭湀鏈�澶уぉ鏁�
+		int lastDay = cal.getActualMaximum(Calendar.DATE);
+		// 璁剧疆鏃ュ巻涓湀浠界殑鏈�澶уぉ鏁�
+		cal.set(Calendar.DAY_OF_MONTH, lastDay);
+		// 鏍煎紡鍖栨棩鏈�
+		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+		return sdf.format(cal.getTime());
+	}
+
+	public static void main(String[] args) throws ParseException {
+		System.out.println(getMonthSpace("2012-02", "2012-02"));
+	}
+
 }
\ No newline at end of file

--
Gitblit v1.8.0