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

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

注意:值month00一月,1二月..)开始。

于 2013-02-09T23:50:17.453 回答