关于日期与星期的问题
Java code
public static int getDayOfWeek(String date){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date1 = new Date();
try{
date1 = df.parse(date);
}catch(Exception e){
}
Calendar c = Calendar.getInstance();
c.setFirstDayOfWeek(Calendar.SATURDAY); //设置星期的第一天
c.setTime(date1);
return c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
}
代码如上面所示,方法代码是确定输入的日期是当月的第几个星期,测试过能输出星期数,但有误差!例如:输入"2012-05-21"得出3,"2012-05-22"得出4,代表不同一个星期,但这两个日期明明是星期一跟星期二,应该是是同一个星期的,之后我加入
c.setFirstDayOfWeek(Calendar.SATURDAY); 这段代码,但效果一样还是有误差!
有谁知道问题出在哪里?
------解决方案--------------------把return c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
改成return c.get(Calendar.WEEK_OF_MONTH);
------解决方案--------------------Calendar.DAY_OF_WEEK_IN_MONTH 是指当前月中的第几个星期。
21号是第三周的末尾。
22号时第四周的开始。
所以21号返回3,22号返回4.