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


1. WEEK_OF_YEAR   一年中的第幾周

由於西方的一周指的是:星期日-星期六,星期日是一周的第一天,星期六是一周的最后一天,

所以,使用 calendar.get(Calendar.WEEK_OF_YEAR) 時應該注意一周的開始應該是哪一天

如果一周的開始是星期一,那么可以進行如下操作:

        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周時,將以下一年的第一周來計算

(跨年問題:跨年的那個星期獲取 “WEEK_OF_YEAR” 得到的結果總是“1”,

        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 通過計算得到:1

 2. MONTH  月份

也是因為西方文化的原因,一年的第一個月是從“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());

 


免責聲明!

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



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