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;
4

2 に答える 2

0

このような?1月を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;

私が使用したフォールスルー構文は、時々有害と見なされることに注意してください。

于 2013-02-09T23:30:50.117 に答える
0

組み込みメソッドを使用して、目的の結果を取得することもできます。

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

注: の値は( 1 月の場合、2 月の場合..)monthから始まります。001

于 2013-02-09T23:50:17.453 に答える