【发布时间】:2013-12-27 08:59:09
【问题描述】:
以下代码有时会给出正确的输出,有时会给出错误的输出
例如:
1990 年 4 月 7 日返回星期一,这是正确的
1987 年 12 月 31 日返回星期日,这是不正确的,应该是星期二
我试过了:
int mm=Integer.parseInt(m);
GregorianCalendar calendar = new GregorianCalendar(Integer.parseInt(y),mm,Integer.parseInt(d));
int i = calendar.get(Calendar.DAY_OF_WEEK);
String dayOfTheWeek = null;
if(i == 2){
dayOfTheWeek = "Monday";
} else if (i==3){
dayOfTheWeek = "Tuesday";
} else if (i==4){
dayOfTheWeek = "Wednesday";
} else if (i==5){
dayOfTheWeek = "Thursday";
} else if (i==6){
dayOfTheWeek = "Friday";
} else if (i==7){
dayOfTheWeek = "Saturday";
} else if (i==1){
dayOfTheWeek = "Sunday";
}
Log.v("Event Week",Integer.toString(i));
return dayOfTheWeek;
【问题讨论】:
-
嗯.. 1990 年 4 月 7 日是星期六,1987 年 12 月 31 日是星期四!!!我是不是走错路了?
-
该示例显示您在该月遇到了偏离 1 的问题。 Java 使用 0 表示 1 月,1 表示 2 月,等等......
-
从原始月份减去 1
-
据我所知 DAY_OF_WEEK 从 0 开始,星期日 = 0;