获取不使用日历的星期几

时间:2016-04-12 15:10:25

标签: java android android-calendar

我的日历有问题 我想根据什么日期显示星期几的名称。三月份,下一个代码运作良好

    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则返回不同的索引号 我做错了什么? 来人帮帮我? 感谢

3 个答案:

答案 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()));