有下一个功能来获得一年中的一周:
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;
}
使用date = 02.01.2013
调用该函数我在调试中看到的内容:
我想得到:周= 1,月= 1。正确?
我哪里错了?
JRE 1.6
非常感谢你的进步。
答案 0 :(得分:11)
Calendar.WEEK_OF_YEAR
和Calendar.MONTH
是静态常量,用于查找字段。你想要
Integer week = cal.get(Calendar.WEEK_OF_YEAR);
Integer month = cal.get(Calendar.MONTH);
另外,请注意(我认为)1月被视为第0个月。
答案 1 :(得分:0)
public final static int WEEK_OF_YEAR = 3;
是日历内部的来源。
当您访问WEEK_OF_YEAR
时,它会打印此字段的值,将其视为访问Calendar
类的静态字段。
如果您想要获得周,则需要执行Integer week = cal.get(Calendar.WEEK_OF_YEAR);