从Switch语句打印有序日期

时间:2013-02-09 23:26:17

标签: java date loops switch-statement

我正在尝试编写一个循环,它将从我的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 个答案:

答案 0 :(得分: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;

请注意,我使用的直通式语法有时被认为是有害的

答案 1 :(得分:0)

您也可以使用内置方法获得所需的结果:

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

注意:month的值从0开始(1月为0,2月为1。)。