Calendar.get()方法--- WEEK_OF_YEAR 、MONTH、

1. WEEK_OF_YEAR   一年中的第幾周java

因爲西方的一週指的是:星期日-星期六,星期日是一週的第一天,星期六是一週的最後一天,spa

因此,使用 calendar.get(Calendar.WEEK_OF_YEAR) 時應該注意一週的開始應該是哪一天orm

若是一週的開始是星期一,那麼能夠進行以下操做:blog

        Calendar calendar=Calendar.getInstance();
        calendar.set(2016,9,9);              //2016-10-09  這一天是星期日
        long week1=calendar.get(Calendar.WEEK_OF_YEAR);
        calendar.setFirstDayOfWeek(Calendar.MONDAY);         //設置一週的第一天是星期幾
        calendar.set(2016,9,9);          / /   必定要在calendar.setFirstDayOfWeek();方法後從新設置一遍日期,不然無效
        long week2=calendar.get(Calendar.WEEK_OF_YEAR);

注意:一年有52個周,calendar.get(Calendar.WEEK_OF_YEAR);的取值範圍是:「1-52」,因此當一年中最後的幾天超過52周,進入第53周時,將如下一年的第一週來計算get

(跨年問題:跨年的那個星期獲取 「WEEK_OF_YEAR」 獲得的結果老是「1」,it

form

        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.set(2016,11,31);             //2016-12-31
        long week=calendar.get(Calendar.WEEK_OF_YEAR);       //week= 1

2016-12-31 經過計算獲得:1class

 2. MONTH  月份date

也是由於西方文化的緣由,一年的第一個月是從「0」開始算起的,一年中12個月份分別是:「0-11」,12指的是下一年的一月份方法

        calendar.set(2016,12,9);
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
        String date=format.format(calendar.getTime());
得到的結果是:2017-01-09

 因此    爲 calendar 設置「月份(MONTH)」時須要 「-1」

           經過 calendar 獲取「月份(month)」時須要 「+1」

3.DAY_OF_WEEK  星期幾

         String[] weeks = new String[]{"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};           
int index=calendar.get(Calendar.DAY_OF_WEEK);
String weekDay=weeks[index-1];

 返回的是周幾,取值爲「1-7」  指的是  「星期日-星期六」,因此獲取星期幾時須要 「-1」

(這個值跟一週的第一天是星期幾無關)

 4. SET() 方法

 

set(Calendar.DAY_OF_WEEK,Calendar.MONDAY):設置日期(calendar)爲日期所在周的週一的日期(能夠獲取日期所在周的週一的日期)

        calendar.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
        String date=format.format(cal.getTime());
相關文章
相關標籤/搜索