2013-02-09 40 views
0

我正在嘗試編寫一個循環,將從我的switch語句中獲取它的值。我希望它打印出日期,以各自己的路線,如: 1/1 1/2 1/3 ... 12/31打印命令從開關語句的日期

我試圖寫我自己,但我不完全確定如何按照正確的順序將這幾個月分配給switch語句中的3個例子。

下面是我使用switch語句:

int month = 0; 
    int yearInt = year; 
    int totalDays = 0; 

    switch (month) { 
    case 1: 
     totalDays = 30; 
     break; 
    case 2: 
     if (((yearInt % 4 == 0) && !(yearInt % 100 == 0)) 
       || (yearInt % 400 == 0)) 
      totalDays = 29; 
     else 
      totalDays = 28; 
     break; 
    default: 
     totalDays = 31; 
     break; 
+2

無法理解您的問題。你能否更清楚地解釋一下? – 2013-02-09 23:28:20

回答

0

喜歡這個?一月假設1

case 1: 
case 3: 
case 5: 
case 7: 
case 8: 
case 10: 
case 12: 
    totalDays = 31; 
    break; 
case 2: 
    if (((yearInt % 4 == 0) && !(yearInt % 100 == 0)) 
      || (yearInt % 400 == 0)) 
     totalDays = 29; 
    else 
     totalDays = 28; 
    break; 
default: 
    totalDays = 30; 
    break; 

請注意,我用的是落空的語法有時被認爲是有害的:

+1

擊敗了我約30秒... :) – arcy 2013-02-09 23:31:29

0

可以以及得到期望的結果使用內置的方法:

Calendar c = Calendar.getInstance(); 
    c.set(Calendar.YEAR, yearInt); 
    c.set(Calendar.MONTH, month); 
    int totalDays = c.getActualMaximum(Calendar.DAY_OF_MONTH); 

注:month的值從00 1月份,1 2月份)開始。