关于日期与星期的问题

fhqlpgk1218 2012-05-22 06:18:18

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); 这段代码,但效果一样还是有误差!
有谁知道问题出在哪里?
...全文
101 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星陨落 2012-05-22
  • 打赏
  • 举报
回复
支持1楼
FFF9527 2012-05-22
  • 打赏
  • 举报
回复
Calendar.DAY_OF_WEEK_IN_MONTH 是指当前月中的第几个星期。
21号是第三周的末尾。
22号时第四周的开始。

所以21号返回3,22号返回4.
古市轩 2012-05-22
  • 打赏
  • 举报
回复
把return c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
改成return c.get(Calendar.WEEK_OF_MONTH);

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧