DateUtils 工具類

package com.zuche.web.common.util;




import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Vector;


import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.Duration;
import org.joda.time.Interval;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;


import com.google.common.collect.Lists;


/**
 * 
 *         日期信息處理
 */


public class DateUtils {
    public final static String defaultPattern = "yyyy-MM-dd";
    public final static String dateTimePattern = "yyyy-MM-dd HH:mm";
    private final static String dateMonthHourPattern = "M月d日HH:mm";
    public final static String dateMonthPattern = "yyyy年MM月dd日";
    public final static String dateTimeSecondPattern = "yyyy-MM-dd HH:mm:ss";
    public final static String dateTimeYNDPattern = "yyyy年MM月dd日HH點mm分";
    public final static String dateTimeYNDHMSPattern = "yyyyMMddHHmmss";
    public final static String dateYNDPattern = "yyyyMMdd";
    private final static ThreadLocal<HashMap<String, SimpleDateFormat>> customerMapThread = new
            ThreadLocal<HashMap<String,
                    SimpleDateFormat>>();
    public static final DateTimeFormatter SHORT_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
    public static final DateTimeFormatter LONG_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm");
    public static final DateTimeFormatter SHORT_CHINA_FORMATTER = DateTimeFormat.forPattern("yyyy年MM月dd日");


    /**
     * 根據傳入字符串 返回yyyy年mm月dd日,月份日期爲單位時顯示爲雙位
     */
    public static String getCurrentDateToCNWhole(String dateTime) {


        String year = dateTime.substring(0, 4);
        String month;
        String day;


        month = dateTime.substring(5, 7);
        day = dateTime.substring(8, 10);
        return year + "年" + month + "月" + day + "日";
    }


    /**
     * Description: 將日期字符串轉換成日期型
     *
     * @param dateStr
     * @return
     * @Version1.0 2012-11-5 上午08:50:21 
     */
    public static Date dateString2Date(String dateStr) {
        return dateString2Date(dateStr, defaultPattern);
    }


    /**
     * Description: 將日期字符串轉換成指定格式日期
     *
     * @param dateStr
     * @param partner
     * @return
     * @Version1.0 2012-11-5 上午08:50:55 
     */
    public static Date dateString2Date(String dateStr, String partner) {


        try {
            SimpleDateFormat formatter = getSimpleDateFormat(partner);
            ParsePosition pos = new ParsePosition(0);
            return formatter.parse(dateStr, pos);
        } catch (NullPointerException e) {
            return null;
        }
    }


    /**
     * 獲取指定日期的年份
     *
     * @param p_date util.Date日期
     * @return int 年份
     */
    public static int getYearOfDate(java.util.Date p_date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(p_date);
        return c.get(java.util.Calendar.YEAR);
    }


    /**
     * Description: 獲取日期字符串的年份
     *
     * @param p_date 字符串日期
     * @return int 年份
     * @Version1.0 2012-11-5 上午08:51:51 
     */
    public static int getYearOfDate(String p_date) {
        return getYearOfDate(dateString2Date(p_date));
    }


    /**
     * Description: 獲取指定日期的月份
     *
     * @param p_date java.util.Date
     * @return int 月份
     * @Version1.0 2012-11-5 上午08:52:14 
     */
    public static int getMonthOfDate(java.util.Date p_date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(p_date);
        return c.get(java.util.Calendar.MONTH) + 1;
    }


    /**
     * Description: 獲取日期字符串的月份
     *
     * @param date 字符串日期
     * @return int 月份
     * @Version1.0 2012-11-5 上午08:53:22
     */
    public static int getMonthOfDate(String date) {
        return getMonthOfDate(dateString2Date(date));
    }


    /**
     * 獲取指定日期的日份
     *
     * @param p_date util.Date日期
     * @return int 日份
     */
    public static int getDayOfDate(java.util.Date p_date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(p_date);
        return c.get(java.util.Calendar.DAY_OF_MONTH);
    }


    /**
     * 獲取指定日期的周 與 Date .getDay()兼容
     *
     * @param date String 日期
     * @return int 周
     */
    public static int getWeekOfDate(String date) {
        java.util.Date p_date = dateString2Date(date);
        return getWeekOfDate(p_date);
    }


    /**
     * 獲取指定日期的周 與 Date .getDay()兼容
     *
     * @param date util.Date日期
     * @return int 周
     */
    public static int getWeekOfDate(Date date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(date);
        return c.get(java.util.Calendar.DAY_OF_WEEK) - 1;
    }


    /**
     * 獲取指定日期的小時
     *
     * @param p_date util.Date日期
     * @return int 日份
     */
    public static int getHourOfDate(java.util.Date p_date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(p_date);
        return c.get(java.util.Calendar.HOUR_OF_DAY);
    }


    /**
     * 獲取指定日期的分鐘
     *
     * @param p_date util.Date日期
     * @return int 分鐘
     */
    public static int getMinuteOfDate(java.util.Date p_date) {
        java.util.Calendar c = java.util.Calendar.getInstance();
        c.setTime(p_date);
        return c.get(java.util.Calendar.MINUTE);
    }


    /**
     * Description: 日期轉化指定格式的字符串型日期
     *
     * @param p_utilDate java.util.Date
     * @param p_format   日期格式
     * @return 字符串格式日期
     * @Version1.0 2012-11-5 上午08:58:44 by 
     */
    public static String date2String(
            java.util.Date p_utilDate, String p_format) {
        String l_result = "";
        if (p_utilDate != null) {
            SimpleDateFormat sdf = getSimpleDateFormat(p_format);
            l_result = sdf.format(p_utilDate);
        }
        return l_result;
    }


    /**
     * Description: 日期轉化指定格式的字符串型日期
     *
     * @param p_utilDate java.util.Date
     * @return 字符串格式日期
     * @Version1.0 2012-11-5 上午08:58:58
     */
    public static String date2String(
            java.util.Date p_utilDate) {
        return date2String(p_utilDate, defaultPattern);
    }




    /**
     * Description: 時間計算(根據時間推算另個日期)
     *
     * @param date  日期
     * @param type  類型 y,M,d,h,m,s 年、月、日、時、分、秒
     * @param value 添加值
     * @return
     * @Version1.0 2012-4-12 下午12:59:39 
     */
    public static Date dateAdd(Date date, String type, int value) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        if (type.toLowerCase().equals("y") || type.toLowerCase().equals("year"))
            c.add(Calendar.YEAR, value);
        else if (type.equals("M") || type.toLowerCase().equals("month"))
            c.add(Calendar.MONTH, value);
        else if (type.toLowerCase().equals("d") || type.toLowerCase().equals("date"))
            c.add(Calendar.DATE, value);
        else if (type.toLowerCase().equals("h") || type.toLowerCase().equals("hour"))
            c.add(Calendar.HOUR, value);
        else if (type.equals("m") || type.toLowerCase().equals("minute"))
            c.add(Calendar.MINUTE, value);
        else if (type.toLowerCase().equals("s") || type.toLowerCase().equals("second"))
            c.add(Calendar.SECOND, value);
        return c.getTime();
    }


    /**
     * Description:
     *
     * @param date
     * @param type
     * @param value
     * @return
     * @Version1.0 2012-11-5 上午09:39:21 
     */
    public static Date dateAdd2Date(Date date, String type, int value) {
        return dateAdd(date, type, value);
    }


    /**
     * Description:
     *
     * @param dateStr
     * @param type
     * @param value
     * @param pattern
     * @return
     * @Version1.0 2012-11-5 上午09:18:13 )
     */
    public static Date dateAdd2Date(String dateStr, String type, int value, String pattern) {
        Date date = DateUtils.dateString2Date(dateStr, pattern);
        return dateAdd(date, type, value);


    }


    /**
     * Description:
     *
     * @param dateStr
     * @param type
     * @param value
     * @return
     * @Version1.0 2012-11-5 上午09:19:59
     */
    public static Date dateAdd2Date(String dateStr, String type, int value) {
        Date date = DateUtils.dateString2Date(dateStr, DateUtils.defaultPattern);
        return dateAdd(date, type, value);


    }


    /**
     * Description:
     *
     * @param date
     * @param type
     * @param value
     * @return
     * @Version1.0 2012-11-5 上午09:43:47 
     */
    public static String dateAdd2String(Date date, String type, int value) {
        Date dateD = dateAdd2Date(date, type, value);
        return date2String(dateD);
    }


    /**
     * Description:
     *
     * @param date
     * @param type
     * @param value
     * @param pattern
     * @return
     * @Version1.0 2012-11-5 上午10:01:50 
     */
    public static String dateAdd2String(Date date, String type, int value, String pattern) {
        Date dateD = dateAdd2Date(date, type, value);
        return date2String(dateD, pattern);
    }


    /**
     * Description:
     *
     * @param dateStr
     * @param type
     * @param value
     * @param pattern
     * @return
     * @Version1.0 2012-11-5 上午09:43:24 
     */
    public static String dateAdd2String(String dateStr, String type, int value, String pattern) {
        Date date = dateAdd2Date(dateStr, type, value, pattern);
        return date2String(date);
    }


    /**
     * Description:
     *
     * @param dateStr
     * @param type
     * @param value
     * @return
     * @Version1.0 2012-11-5 上午09:42:12 
     */
    public static String dateAdd2String(String dateStr, String type, int value) {
        Date date = dateAdd2Date(dateStr, type, value);
        return date2String(date);
    }


    public static String dateAdd2String(String dateStr, int value) {
        return dateAdd2String(dateStr, "d", value);
    }


    /**
     * Description:
     *
     * @param dateStr
     * @param isAddDay
     * @return
     * @Version1.0 2012-11-5 上午10:19:24 
     */
    public static String dateAdd2String(String dateStr, boolean isAddDay) {
        String returndateStr = dateStr;
        try {
            if (isAddDay) {
                dateStr = dateAdd2String(dateStr, "d", 1);
            }
            Date date = dateString2Date(dateStr);
            int month = getMonthOfDate(date);
            int day = getDayOfDate(date);
            returndateStr = month + "." + day;
        } catch (Exception e) {
            e.printStackTrace();
        }


        return returndateStr;
    }


    /**
     * Description:
     *
     * @param dateStr
     * @return
     * @Version1.0 2012-11-5 上午10:23:46 
     */
    public static String dateAdd2String(String dateStr) {
        return dateAdd2String(dateStr, false);
    }


    /**
     * Description:
     *
     * @param dateStr
     * @param type
     * @param value
     * @param pattern
     * @return
     * @Version1.0 2012-11-5 上午09:43:24 
     */
    public static String dateAdd2PatternString(String dateStr, String type, int value, String pattern) {
        Date date = dateAdd2Date(dateStr, type, value, pattern);
        return date2String(date, pattern);
    }


    /**
     * @param @param  p_date
     * @param @return
     * @return boolean
     * @throws
     * @Title: checkWeekendDay
     * @Description: 判斷是平時還是週末
     */


    public static boolean checkWeekendDay(String p_date) {
        Calendar c = Calendar.getInstance();
        c.setTime(dateString2Date(p_date));
        int num = c.get(Calendar.DAY_OF_WEEK);


        //如果爲週六 週日則爲週末  1星期天 2爲星期六
        return num == 6 || num == 7 || num == 1;
    }


    /**
     * @param @param  startTime
     * @param @param  endTime
     * @param @return
     * @param @throws ParseException
     * @return String[][]
     * @throws
     * @Title: getMonthsByTime
     * @Description: 按時間段計算月份跨度  計算出所包含的月份
     */
    @SuppressWarnings("static-access")
    public static int[][] getMonthsByTime(String startTime, String endTime) {
        Date st;
        Date et;


        try {
            et = getSimpleDateFormat(defaultPattern).parse(endTime);
            st = getSimpleDateFormat(defaultPattern).parse(startTime);
        } catch (ParseException e) {
            return null;
        }




        Calendar ca1 = Calendar.getInstance();
        Calendar ca2 = Calendar.getInstance();
        ca1.setTime(st);
        ca2.setTime(et);


        int ca1Year = ca1.get(Calendar.YEAR);
        int ca1Month = ca1.get(Calendar.MONTH);


        int ca2Year = ca2.get(Calendar.YEAR);
        int ca2Month = ca2.get(Calendar.MONTH);
        int countMonth;//這個是用來計算得到有多少個月時間的一個整數,
        if (ca1Year == ca2Year) {
            countMonth = ca2Month - ca1Month;
        } else {
            countMonth = (ca2Year - ca1Year) * 12 + (ca2Month - ca1Month);
        }


        int months[][] = new int[countMonth + 1][2];        //年月日二維數組


        for (int i = 0; i < countMonth + 1; i++) {
            //每次在原基礎上累加一個月


            months[i][0] = ca1.get(java.util.Calendar.YEAR);
            months[i][1] = ca1.get(java.util.Calendar.MONTH);
            months[i][1] += 1;
            ca1.add(ca1.MONTH, 1);
        }


        return months;
    }


    /**
     * yyyy-MM-dd HH:mm 格式日期 轉化 爲 M月d日HH:mm 格式日期
     *
     * @param date String
     * @return String
     */
    public static String string2String(String date) throws ParseException {
        return date2String(dateString2Date(date, dateTimePattern), dateMonthHourPattern);
    }


    /**
     * Description:
     *
     * @param date
     * @param pattern
     * @return
     * @throws ParseException
     * @Version1.0 2012-11-9 上午10:57:30 
     */
    public static String string2String(String date, String pattern) throws ParseException {
        return date2String(dateString2Date(date), pattern);
    }


    /**
     * Description: 得到兩個時間差
     *
     * @param startTime 開始時間
     * @param toTime    結束時間
     * @param pattern   日期格式字符串
     * @return long 時間差
     * @Version1.0 2012-11-5 上午09:04:45 
     */
    public static long getDateDiff(String startTime, String toTime, String pattern) {
        long diff = getDateDiffLong(startTime, toTime, pattern);
        diff = diff / 1000 / 60;
        return diff;
    }


    /**
     * Description:
     *
     * @param startTime
     * @param toTime
     * @param pattern
     * @return
     * @Version1.0 2012-11-9 上午10:25:23 
     */
    public static long getDateDiffLong(String startTime, String toTime, String pattern) {
        long diff = 0l;
        if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(toTime)) {
            SimpleDateFormat format = getSimpleDateFormat(pattern);
            ParsePosition pos = new ParsePosition(0);
            Date startTimeD = format.parse(startTime, pos);
            pos.setIndex(0);
            Date toTimeD = format.parse(toTime, pos);
            if (startTimeD != null && toTimeD != null) {
                diff = startTimeD.getTime() - toTimeD.getTime();
            }
        }
        return diff;
    }


    /**
     * Description: 得到兩個時間差
     *
     * @param startTime 開始時間
     * @param toTime    結束時間
     * @return long 時間差
     * @Version1.0 2012-11-5 上午09:05:27 
     */
    public static long getDateDiff(String startTime, String toTime) {
        return getDateDiff(startTime, toTime, dateTimePattern);
    }


    /**
     * Description: 得到兩個時間差
     *
     * @param startTimeD 開始時間
     * @param toTime     結束時間
     * @param pattern    日期格式字符串
     * @return long 時間差
     * @Version1.0 2012-11-5 上午09:09:34
     */
    public static long getDateDiff(Date startTimeD, String toTime, String pattern) {
        long diff;
        Date toTimeD = dateString2Date(toTime, pattern);
        diff = startTimeD.getTime() - toTimeD.getTime();
        return diff;
    }


    /**
     * Description:
     *
     * @param hour
     * @param minute
     * @return
     * @Version1.0 2012-11-5 上午10:26:46 
     */
    public static Integer getMinuteTotal(String hour, String minute) {
        return getMinuteTotal(Integer.parseInt(hour), Integer.parseInt(minute));
    }


    /**
     * Description:
     *
     * @param hour
     * @param minute
     * @return
     * @Version1.0 2012-11-5 上午10:26:50 
     */
    public static Integer getMinuteTotal(Integer hour, Integer minute) {
        return hour * 60 + minute;
    }


    /**
     * Description:
     *
     * @param leaseTime
     * @param leaseDays
     * @return
     * @Version1.0 2012-11-5 上午10:27:25 
     */
    public static String[] getallyearMonth(Date leaseTime, int leaseDays) {
        List<String> yearList = new ArrayList<String>();
        List<String> monthList = new ArrayList<String>();
        String yearString;
        String monthString;
        StringBuilder dateString = new StringBuilder();
        StringBuilder sBuffer = new StringBuilder();
        String[] returnResult = new String[3];
        for (int i = 0; i < leaseDays; i++) {
            String correctDate = DateUtils.dateAdd2String(leaseTime, "d", i);
            String year = correctDate.split("-")[0];
            String month = correctDate.split("-")[1];
            if (!yearList.contains(year))
                yearList.add(year);
            if (!monthList.contains(month))
                monthList.add(month);
            if (i == leaseDays - 1)
                dateString.append(correctDate);
            else
                dateString.append(correctDate).append(",");


        }
        for (String month : monthList) {
            sBuffer.append(month).append(",");
        }
        monthString = sBuffer.toString();
        sBuffer.delete(0, sBuffer.length());
        for (String year : yearList) {
            sBuffer.append(year).append(",");
        }
        yearString = sBuffer.toString();
        if (monthString.lastIndexOf(",") == monthString.length() - 1)
            monthString = monthString.substring(0, monthString.length() - 1);
        if (yearString.lastIndexOf(",") == yearString.length() - 1)
            yearString = yearString.substring(0, yearString.length() - 1);
        returnResult[0] = yearString;
        returnResult[1] = monthString;
        returnResult[2] = dateString.toString();
        return returnResult;
    }


    private static SimpleDateFormat getSimpleDateFormat(String pattern) {
        SimpleDateFormat simpleDateFormat;
        HashMap<String, SimpleDateFormat> simpleDateFormatMap = customerMapThread.get();
        if (simpleDateFormatMap != null && simpleDateFormatMap.containsKey(pattern)) {
            simpleDateFormat = simpleDateFormatMap.get(pattern);
        } else {
            simpleDateFormat = new SimpleDateFormat(pattern);
            if (simpleDateFormatMap == null) {
                simpleDateFormatMap = new HashMap<String, SimpleDateFormat>();
            }
            simpleDateFormatMap.put(pattern, simpleDateFormat);
            customerMapThread.set(simpleDateFormatMap);
        }


        return simpleDateFormat;
    }


    public static List<String> getRightYearMonth(String[] year, String[] month, String fromDate, String toDate) {
        List<String> dayArray = getRightDay(year, month, fromDate, toDate);
        if (dayArray != null && dayArray.size() > 0) {
            for (int i = 0, len = dayArray.size(); i < len; i++) {
                dayArray.set(i, dayArray.get(i).substring(0, 7));
            }
        }
        return dayArray;
    }


    private static List<String> getRightDay(String[] years, String[] months, String fromDate, String toDate) {
        DateTime from = new DateTime(Integer.parseInt(fromDate.substring(0, 4)), Integer.parseInt(fromDate.substring
                (5, 7)), 1, 0, 0);
        DateTime to = new DateTime(Integer.parseInt(toDate.substring(0, 4)), Integer.parseInt(toDate.substring(5,
                7)), 2, 0, 0);
        Interval interval = new Interval(from, to);
        List<String> list = Lists.newArrayList();
        DateTime tmp;
        for (String year : years) {
            for (String month : months) {
                tmp = new DateTime(Integer.parseInt(year), Integer.parseInt(month), 1, 0, 0);
                if (interval.contains(tmp)) {
                    list.add(SHORT_FORMATTER.print(tmp));
                }
            }
        }


        return list;
    }


    public static Integer getTermMaxLeng(String[] year, String[] month, String fromDate, String toDate) {
        List<String> dayArray = getRightDay(year, month, fromDate, toDate);
        Integer size = 0;
        if (dayArray != null) {
            size = dayArray.size();
        }
        return size;
    }


    /**
     * 獲得指定日期及指定天數之內的所有日期列表
     *
     * @param pDate 指定日期 格式:yyyy-MM-dd
     * @param count 取指定日期後的count天
     * @return
     * @throws ParseException
     */
    public static Vector<String> getDatePeriodDay(String pDate, int count)
            throws ParseException {
        Vector<String> v = new Vector<String>();


        Calendar calendar = Calendar.getInstance();
        calendar.setTime(DateUtils.dateString2Date(pDate));
        v.add(DateUtils.date2String(calendar.getTime()));


        for (int i = 0; i < count - 1; i++) {
            calendar.add(Calendar.DATE, 1);
            v.add(DateUtils.date2String(calendar.getTime()));
        }


        return v;
    }


    /**
     * 獲得指定日期內的所有日期列表
     *
     * @param sDate 指定開始日期 格式:yyyy-MM-dd
     * @param sDate 指定開始日期 格式:yyyy-MM-dd
     * @return String[]
     * @throws ParseException
     */
    public static String[] getDatePeriodDay(String sDate, String eDate)
            throws ParseException {
        if (dateCompare(sDate, eDate)) {
            return null;
        }
        Calendar calendar = Calendar.getInstance();
        Calendar calendar_ = Calendar.getInstance();
        calendar.setTime(DateUtils.dateString2Date(sDate));
        long l1 = calendar.getTimeInMillis();
        calendar_.setTime(DateUtils.dateString2Date(eDate));
        long l2 = calendar_.getTimeInMillis();
        // 計算天數
        long days = (l2 - l1) / (24 * 60 * 60 * 1000) + 1;


        String[] dates = new String[(int) days];
        dates[0] = (DateUtils.date2String(calendar.getTime()));
        for (int i = 1; i < days; i++) {
            calendar.add(Calendar.DATE, 1);
            dates[i] = (DateUtils.date2String(calendar.getTime()));
        }
        return dates;
    }


    /**
     * 比較日期大小
     *
     * @param compareDate
     * @param toCompareDate
     * @return
     */


    public static boolean dateCompare(String compareDate, String toCompareDate) {
        boolean comResult = false;
        Date comDate = DateUtils.dateString2Date(compareDate);
        Date toComDate = DateUtils.dateString2Date(toCompareDate);


        if (comDate.after(toComDate)) {
            comResult = true;
        }




        return comResult;
    }


    /**
     * Description: 判斷字符串是否日期格式(yyyy-MM-dd 或者 yyyy-MM-dd HH:mm)
     *
     * @param time
     * @return
     * @Version1.0 2013-1-5 下午01:47:09
     */
    public static boolean isDateFormat(String time) {
        boolean isDate = true;
        if (StringUtils.isNotBlank(time)) {
            SimpleDateFormat format = getSimpleDateFormat(defaultPattern);
            ParsePosition pos = new ParsePosition(0);
            java.util.Date timeD = format.parse(time, pos);
            if (timeD == null) {
                format = getSimpleDateFormat(dateTimePattern);
                pos.setIndex(0);
                timeD = format.parse(time, pos);
                if (timeD == null) {
                    isDate = false;
                }
            }


        }
        return isDate;
    }


    public static Duration getDuration(String fromTime, String toTime,String pattern) {
        
        return getDuration(fromTime, toTime, DateTimeFormat.forPattern(pattern));
    } 
    public static Duration getDuration(String fromTime, String toTime,DateTimeFormatter formatter) {
        Duration duration = null;
        if (StringUtils.isNotBlank(fromTime) && StringUtils.isNotBlank(toTime)) {
            final DateTime fromDateTime = formatter.parseDateTime(fromTime);
            final DateTime toDateTime = formatter.parseDateTime(toTime);
            duration = new Duration(fromDateTime, toDateTime);
        }
        return duration;
    }


    public static Duration getDuration(String fromTime, String toTime) {
        return getDuration(fromTime,toTime,SHORT_FORMATTER);
    }
    public static String getMaxDateByMonth(Date currentDate){
    return getMaxDateByMonth(date2String(currentDate));
    }
    public static String getMinDateByMonth(Date currentDate){
   return getMinDateByMonth(date2String(currentDate));
    }
    public static String getMaxDateByMonth(String currentDate){
    Date sDate1 = DateUtils.dateString2Date(currentDate);
Calendar   cDay1   =   Calendar.getInstance();  
   cDay1.setTime(sDate1);  
   final   int   lastDay   =   cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);  
   return currentDate.substring(0,8)+lastDay;
    }
    public static String getMinDateByMonth(String currentDate){
   return currentDate.substring(0,8)+"01";
    }
}
發佈了17 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章