java獲得上下周及本周日期


 

 

 

    public static SimpleDateFormat getFormat(String format) {
        return new SimpleDateFormat(format);
    }

    /**
     * 獲取上周周幾的日期,默認一周從周一開始
     * 
     * @param dayOfWeek
     * @param weekOffset
     * @return
     */
    public static Date getDayOfWeek(int dayOfWeek, int weekOffset) {
        return getDayOfWeek(Calendar.MONDAY, dayOfWeek, weekOffset);
    }

    /**
     * 獲取上(下)周周幾的日期
     * 
     * @param firstDayOfWeek {@link Calendar} 值范圍 <code>SUNDAY</code>,
     *                       <code>MONDAY</code>, <code>TUESDAY</code>,
     *                       <code>WEDNESDAY</code>, <code>THURSDAY</code>,
     *                       <code>FRIDAY</code>, and <code>SATURDAY</code>
     * @param dayOfWeek      {@link Calendar}
     * @param weekOffset     周偏移,上周為-1,本周為0,下周為1,以此類推
     * @return
     */
    public static Date getDayOfWeek(int firstDayOfWeek, int dayOfWeek, int weekOffset) {
        if (dayOfWeek > Calendar.SATURDAY || dayOfWeek < Calendar.SUNDAY) {
            return null;
        }
        if (firstDayOfWeek > Calendar.SATURDAY || firstDayOfWeek < Calendar.SUNDAY) {
            return null;
        }
        Calendar date = Calendar.getInstance(Locale.CHINA);
        date.setFirstDayOfWeek(firstDayOfWeek);
        // 周數減一,即上周
        date.add(Calendar.WEEK_OF_MONTH, weekOffset);
        // 日子設為周幾
        date.set(Calendar.DAY_OF_WEEK, dayOfWeek);
        // 時分秒全部置0
        date.set(Calendar.HOUR_OF_DAY, 0);
        date.set(Calendar.MINUTE, 0);
        date.set(Calendar.SECOND, 0);
        date.set(Calendar.MILLISECOND, 0);
        return date.getTime();
    }

    public static void main(String[] args) {
        System.out.println(
                getFormat(DateTimeUtil.YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.MONDAY, -1)));
        System.out.println(
                getFormat(DateTimeUtil.YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SUNDAY, -1)));
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM