【发布时间】:2016-01-05 09:24:56
【问题描述】:
以下代码计算特定日期的工作周数。
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar cal = new GregorianCalendar();
cal.setTime(df.parse("2015-12-27 08:00:00"));
System.err.printf("%d.%02d\n", cal.getWeekYear(), cal.get(Calendar.WEEK_OF_YEAR));
目前打印的是 2016.01。
据我了解工作周数规范,2016.01 是 2016 年的第一周有 4 天,但 12 月 27 日不可能属于这样的一周。
有没有办法在 Java 7 中做到这一点,假设周从星期一开始,它可以在任何一年都有效?
【问题讨论】:
-
世界各地的周规不同,您在哪个地区?
-
cal.getFirstDayOfWeek()和cal.getMinimalDaysInFirstWeek()会为您返回什么? -
@JonSkeet,它被设置为 1,我应该设置为 4。