我的日历有问题 我想根据什么日期显示星期几的名称。三月份,下一个代码运作良好
Calendar cc;
cc = Calendar.getInstance();
cc.set(year, month, day);
String descriptionDay="";
switch (cc.get(Calendar.DAY_OF_WEEK)){
case 1:{
descriptionDay= "Thursday";
break;
}
case 2:{
descriptionDay= "Friday";
break;
}
case 3:{
descriptionDay= "Saturday";
break;
}
case 4:{
descriptionDay= "Sunday";
break;
}
case 5:{
descriptionDay= "Monday";
break;
}
case 6:{
descriptionDay= "Tuesday";
break;
}
case 7:{
descriptionDay= "Wednesday";
break;
}
}
4月份,周的名称显示不正确,而calendar.DAY_OF_WEEK则返回不同的索引号 我做错了什么? 来人帮帮我? 感谢
答案 0 :(得分:2)
您应该使用Calendar
中的数字常量(并且您不需要所有这些块)。像,
switch (cc.get(Calendar.DAY_OF_WEEK)){
case Calendar.THURSDAY:
descriptionDay= "Thursday";
break;
case Calendar.FRIDAY:
descriptionDay= "Friday";
break;
case Calendar.SATURDAY:
descriptionDay= "Saturday";
break;
case Calendar.SUNDAY:
descriptionDay= "Sunday";
break;
case Calendar.MONDAY:
descriptionDay= "Monday";
break;
case Calendar.TUESDAY:
descriptionDay= "Tuesday";
break;
case Calendar.WEDNESDAY:
descriptionDay= "Wednesday";
break;
}
}
答案 1 :(得分:0)
由于开关盒完全错误,你的日历无法正常工作......星期一绝不是一周中的第5天...例如...
你需要在日历类中使用相同的常量......它们适合你......
switch (cc.get(Calendar.DAY_OF_WEEK)){
case Calendar.SUNDAY:
descriptionDay= "Calendar.SUNDAY";
break;
..........
ETC ETC
default:
descriptionDay="";
}
并始终在switch语句中使用默认大小写,这是一个很好的做法...
答案 2 :(得分:0)
在旧日历中,整个工作日可以得到:
System.out.printf("Today is %s%n",
new SimpleDateFormat("EEEE", Locale.GERMANY)
.format(Calendar.getInstance(Locale.GERMANY).getTime()));