簡體   English   中英

獲取不使用日歷的星期幾

[英]Get day of week not working with 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則返回不同的索引號我的錯誤是什么? 來人幫幫我? 謝謝

您應該使用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;
    }
}

由於開關盒完全錯誤,你的日歷無法正常工作......周一永遠不會是一周的第5天,例如......

你需要在日歷類中使用相同的常量......它們適合你......

  switch (cc.get(Calendar.DAY_OF_WEEK)){

              case Calendar.SUNDAY:
                descriptionDay= "Calendar.SUNDAY";
                break;
              .......... 
              ETC ETC
             default:
                 descriptionDay="";
        }

並始終在switch語句中使用默認情況,這是一個很好的做法...

在舊日歷中,完整的工作日可以得到:

System.out.printf("Today is %s%n",
    new SimpleDateFormat("EEEE", Locale.GERMANY)
        .format(Calendar.getInstance(Locale.GERMANY).getTime()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM