1

我整晚都想弄清楚这一点,但我尝试的任何方法似乎都不起作用。假设财政年度从每年的 10 月 1 日开始,例如财政年度从 2012 年 1 月 1 日开始,这周数为 30。我似乎找不到返回适当周数的代码。

我得到的最接近的是下面的代码,它返回从一月开始的第 16 周。

public String getCurrentWeek() {
        GregorianCalendar current = new GregorianCalendar(getCalendar().get(Calendar.YEAR),
            getCalendar().get(Calendar.MONTH), getCalendar().get(Calendar.DATE));

        return Integer.toString(current.get(Calendar.WEEK_OF_YEAR));
    }
4

1 回答 1

4

我相信:

private static final int LENGTH_OF_WEEK = 7 * 24 * 60 * 60 * 1000;

public static int weekOf(Calendar yearStart, Calendar date) {
    long millisElapsed = date.getTimeInMillis() - yearStart.getTimeInMillis();
    int weeksElapsed = (int) (millisElapsed / LENGTH_OF_WEEK);
    return weeksElapsed + 1;
}

应该这样做。

于 2012-04-17T07:09:33.370 回答