正確獲取星期幾(Calendar.DAY_OF_WEEK)

 正確獲取星期幾(Calendar.DAY_OF_WEEK)javascript

Java代碼 java

 收藏代碼

  1. Calendar now = Calendar.getInstance();  
  2. //一週第一天是否爲星期天  
  3. boolean isFirstSunday = (now.getFirstDayOfWeek() == Calendar.SUNDAY);  
  4. //獲取周幾  
  5. int weekDay = now.get(Calendar.DAY_OF_WEEK);  
  6. //若一週第一天爲星期天,則-1  
  7. if(isFirstSunday){  
  8.     weekDay = weekDay - 1;  
  9.     if(weekDay == 0){  
  10.         weekDay = 7;  
  11.     }  
  12. }  
  13. //打印周幾  
  14. System.out.println(weekDay);  
  15.   
  16. //若當天爲2014年10月13日(星期一),則打印輸出:1  
  17. //若當天爲2014年10月17日(星期五),則打印輸出:5  
  18. //若當天爲2014年10月19日(星期日),則打印輸出:7  

 

 

星期日爲一週的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一爲一週的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

 

如下參考:app

1. 在獲取月份時,Calendar.MONTH + 1 的緣由
Java中的月份遵循了羅馬歷中的規則:當時一年中的月份數量是不固定的,第一個月是JANUARY。而Java中Calendar.MONTH返回的數值實際上是當前月距離第一個月有多少個月份的數值,JANUARY在Java中返回「0」,因此咱們須要+1。spa

2. 在獲取星期幾 Calendar.DAY_OF_WEEK – 1 的緣由
Java中Calendar.DAY_OF_WEEK其實表示:一週中的第幾天,因此他會受到 第一天是星期幾 的影響。
有些地區以星期日做爲一週的第一天,而有些地區以星期一做爲一週的第一天,這2種狀況是須要區分的。
看下錶的返回值ip

星期日爲一週的第一天 SUN MON TUE WED THU FRI SAT
DAY_OF_WEEK返回值 1 2 3 4 5 6 7
星期一爲一週的第一天 MON TUE WED THU FRI SAT SUN
DAY_OF_WEEK返回值 1 2 3 4 5 6 7

因此Calendar.DAY_OF_WEEK須要根據本地化設置的不一樣而肯定是否須要 「-1」
Java中設置不一樣地區的輸出能夠使用 Locale.setDefault(Locale.地區名) 來實現。ci

 

System.out.println(calendar.get(Calendar.DAY_OF_WEEK));get

返回的是周幾,而不是一週的第幾天flash

 

能夠這樣設置,星期第一天是星期幾:it

calendar.setFirstDayOfWeek(Calendar.MONDAY);io

也能夠設置Calendar.SUNDAY

設置好了就決定了當前日期的WEEK_OF_YEAR,但並不會改變DAY_OF_WEEK !

 

3. 獲取日期時 Calendar.DAY_OF_MONTH 不須要特殊的操做,他直接返回一個月中的第幾天

相關文章
相關標籤/搜索