2013-01-03 46 views
1

旁邊函數來獲取一年的周:不正確WEEK_OF_YEAR

static public Integer getWeek(Date date) { 
    Calendar cal = Calendar.getInstance(); 
    cal.setMinimalDaysInFirstWeek(1); 
    cal.setTime(date); 
    Integer week = cal.WEEK_OF_YEAR; 
    Integer month = cal.MONTH; 
    if ((week == 1) && (month == 12)) week = 52; 
    return week; 
} 

呼叫日期的功能= 2013年2月1日

我在調試看到:

  1. 日期=週三一月02 00:00:00 SAMT 2013
  2. week = 3
  3. month = 2

我想得到:week = 1,month = 1。對?

我在哪裏錯了?

JRE 1.6

非常感謝您的提前。

+0

的cal.WEEK_OF_YEAR和cal.MONTH是我認爲的常量。你會想要一個cal.getDayOfWeek()。給我一分鐘,我會找到語法。 – kevingreen

回答

10

Calendar.WEEK_OF_YEARCalendar.MONTH是日曆用於查找字段的靜態常量。你想

Integer week = cal.get(Calendar.WEEK_OF_YEAR); 
Integer month = cal.get(Calendar.MONTH); 

另外請注意,(我認爲)一月被認爲是一個月0

+0

這是在這裏的正確答案。 – kevingreen

+0

是的,非常感謝。什麼是愚蠢的語法錯誤。我有正確的語法2行下面...謝謝很多傢伙。 – mad

+1

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Calendar.html有文檔。它可以幫助你,如果你有進一步的問題。 – kevingreen

0

public final static int WEEK_OF_YEAR = 3;是內部日曆的來源。

當您訪問WEEK_OF_YEAR它打印該字段的值時,它將被視爲訪問類的Calendar的靜態字段。

如果你想獲得一週,你需要做的Integer week = cal.get(Calendar.WEEK_OF_YEAR);

+0

是的,非常感謝。 – mad

+0

@mad:不客氣。祝你好運! – kosa