1. 程式人生 > >java得到指定日期的星期一日期

java得到指定日期的星期一日期

一、得到當前的日期字串

   /**
     * @return 日期字串
     */
    public static String getDate() {
        return getDate(Calendar.getInstance());
    }

二、將日期格式化為指定的字串


    /**
     * @param d 日期.
     * @param format 輸出字串格式.
     * @return 日期字串
     */
    public static String getStringFromDate(Date d, String format) {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(d);
    }

三、得到與指定日期相差指定天數的日期字串

    /**
     * @param dateString 指定的日期.
     * @param period 前後的天數,正值為後, 負值為前.
     * @param periodType 週期類別 可以是天、月、年.
     * @return 日期字串
     */
    public static String getCertainDate(String dateString, int period, int periodType) {
        Calendar calendar = getCalendar(dateString);

        switch (periodType) {
            case 1: // 天
                calendar.add(Calendar.DATE, period);
                break;
            case 2: // 月
                calendar.add(Calendar.MONTH, period);
                break;
            case 3: // 年
                calendar.add(Calendar.MONTH, period * 12);
                break;
            default:
        }
        return getStringFromDate(calendar.getTime(), FORMAT_DATE);
    }

三、得到本週星期一的日期.

     /**
     * @return 日期字串
     */
   public static String getFirstDateOfWeek() {
        return getFirstDateOfWeek(getDate());
    }

四、得到指定日期的星期一的日期

    /**
     * @param dateString 日期字串.
     * @return 本週星期一的日期
     */
    public static String getFirstDateOfWeek(String dateString) {
        Calendar calendar = getCalendar(dateString);
        int iCount;
        if (calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
            iCount = -6;
        } else {
            iCount = Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK);
        }

        return getCertainDate(dateString, iCount);
    }