【发布时间】:2016-01-25 21:44:48
【问题描述】:
我正在尝试为我们的财务部门生成一些代码,他们需要一个字段来为他们提供一年中的当前周,但基于星期天是一周的第一天。因此,例如 01-25-16 (MM-dd-yyyy) 将是第 4 周。但是当我使用 java.util.Calendar 和 calendar.setFirstDayOfWeek 尝试到周日时,它告诉我这是第 5 周,因为它似乎在计数从 12 月底到 1 月 3 日作为第 1 周。
这是我目前写的代码:
private static int getWeekOfYearBySunday(DateTime dt){
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(dt.getMillis());
calendar.setFirstDayOfWeek(Calendar.SUNDAY);
return calendar.get(Calendar.WEEK_OF_YEAR);
}
这将返回第 5 周的第 5 周,即使如果以星期日为一周的开始,它应该为 4。
【问题讨论】: