根据月份和年份查找日期

l33*_*eak 0 java date

我有一个程序将日期从数字月/日/年格式转换为正常格式(例如2010年12月31日).

我不想导入任何东西,或使用日期对象来进行我正在做的事情.

在继续寻找每年的最大天数之前,我正试图按月完成.我试图将月份与天数相匹配(省略2月,因为它取决于它是否为闰年).

这不适合我.我认为这是因为格式.

     try {
        if (m == 1 && (d > 31 || d < 1)) {         // jan
        } else if (m == 3 && (d > 31 || d < 1)) {  // mar
        } else if (m == 4 && (d > 30 || d < 1)) {  // apr
        } else if (m == 5 && (d > 31 || d < 1)) {  // may
        } else if (m == 6 && (d > 30 || d < 1)) {  // june
        } else if (m == 7 && (d > 31 || d < 1)) {  // july
        } else if (m == 8 && (d > 31 || d < 1)) {  // aug
        } else if (m == 9 && (d > 30 || d < 1)) {  // sept
        } else if (m == 10 && (d > 30 || d < 1)) { // oct
        } else if (m == 11 && (d > 30 || d < 1)) { // nov
        } else if (m == 12 && (d > 31 || d < 1))   // dec
            throw new DayException(day);
    } catch (Exception e) {
        throw new DayException(day);
    }
Run Code Online (Sandbox Code Playgroud)

有没有更简单的方法来验证这一天?

Daw*_*ica 5

假设目前你不关心闰年,你可以做这样的事情.

int[] daysInMonth = new int[] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
if (day < 1 || day > daysInMonth[month]){
    throw new DayException(day);
}
Run Code Online (Sandbox Code Playgroud)