2013-08-22 81 views
0

所以,我找到了java.util.Calendar,並試圖將其用於我正在處理的Android項目。java.util.calendar表現奇怪

我完全不理解Calendar.DAY_OF_WEEK如何返回7,當它是星期四? 現在,當它是八月份Calendar.WEEK_OF_YEAR返回4時,它根本沒有任何意義!

我也試過GregorianCalendar,它給出了完全相同的結果。

試圖找到他們如何計數的任何文件,但我找不到任何東西。 似乎有一些非常明顯的東西,但我不知道它是什麼!

我寫的代碼是在這裏:

// Get if daily or weekly 
    boolean daily; 
    daily = getPrefs.getBoolean("checkbox_daily", false); 
    String day = "0"; 
    if (daily){ 
     switch(GregorianCalendar.DAY_OF_WEEK){ 
      case GregorianCalendar.MONDAY: 
       Do_stuff(); 
       break; 
      case GregorianCalendar.TUESDAY: 
       Do_stuff(); 
       break; 
      case GregorianCalendar.WEDNESDAY: 
       Do_stuff(); 
       break; 
      case GregorianCalendar.THURSDAY: 
       Do_stuff(); 
       break; 
      case GregorianCalendar.FRIDAY: 
       Do_stuff(); 
       break; 
     } 
    } 

回答

8

GregorianCalendar.DAY_OF_WEEK是恆定的,

你需要calendarInstance.get(GregorianCalendar.DAY_OF_WEEK);

1

java.util.Calendar文檔:

日曆定義了特定於語言環境7每週使用兩個 參數:本週的第一天以及第一週的最低日期(從1日至7日)。這些數字取自構建日曆時的語言環境資源 數據。它們也可以通過用於設置它們的值的方法明確指定 。

設置或獲取WEEK_OF_MONTH或WEEK_OF_YEAR字段時,日曆必須將月份或年份的第一週確定爲參考點 。一個月或一年的第一週定義爲 從getFirstDayOfWeek()和 開始的最早七天期間,該期間至少包含該月的getMinimalDaysInFirstWeek()天或 年。在第一週之前,編號爲......,-1,0的周;周編號 2,3,...按照它。請注意,由 get()返回的規範化編號可能不同。例如,特定的日曆子類可能會在前一個 年的第n周的第1周前指定一週。