获取星期几不使用日历
Get day of week not working with Calendar
我的日历有问题
我想根据星期几显示星期几的名称。对于 3 月,下一个代码运行良好
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 returns 我的索引号不同
我做错了什么?
来人帮帮我?
谢谢
您应该使用 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;
}
}
您的日历无法正常工作,因为 switch case 完全错误...例如,星期一永远不会是一周的第 5 天...
您需要在日历中使用相同的常量 class...它们适合您...
switch (cc.get(Calendar.DAY_OF_WEEK)){
case Calendar.SUNDAY:
descriptionDay= "Calendar.SUNDAY";
break;
..........
ETC ETC
default:
descriptionDay="";
}
并始终在 switch 语句中使用 default 大小写,这是一个很好的做法...
在旧日历中,完整的工作日可以这样获得:
System.out.printf("Today is %s%n",
new SimpleDateFormat("EEEE", Locale.GERMANY)
.format(Calendar.getInstance(Locale.GERMANY).getTime()));
我的日历有问题 我想根据星期几显示星期几的名称。对于 3 月,下一个代码运行良好
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 returns 我的索引号不同 我做错了什么? 来人帮帮我? 谢谢
您应该使用 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;
}
}
您的日历无法正常工作,因为 switch case 完全错误...例如,星期一永远不会是一周的第 5 天...
您需要在日历中使用相同的常量 class...它们适合您...
switch (cc.get(Calendar.DAY_OF_WEEK)){
case Calendar.SUNDAY:
descriptionDay= "Calendar.SUNDAY";
break;
..........
ETC ETC
default:
descriptionDay="";
}
并始终在 switch 语句中使用 default 大小写,这是一个很好的做法...
在旧日历中,完整的工作日可以这样获得:
System.out.printf("Today is %s%n",
new SimpleDateFormat("EEEE", Locale.GERMANY)
.format(Calendar.getInstance(Locale.GERMANY).getTime()));