JAVA日期处理:判断与计算

3星 · 超过75%的资源 需积分: 50 29 下载量 112 浏览量 更新于2023-03-16 收藏 37KB DOC 举报
"这篇文章总结了Java中进行日期判断的一些常用方法,包括判断是否为闰年、获取指定年份中某个月的天数、验证日期的合法性以及计算两个日期之间相差的天数。" 在Java编程中,处理日期和时间是非常常见的任务。以下是一些关键的日期判断方法: 1. 判断某年是否为闰年: 闰年的规则是:能被4整除但不能被100整除,或者能被400整除的年份。对应的Java代码如下: ```java public static boolean isLeapYear(int year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)); } ``` 这个函数会返回`true`如果给定的年份是闰年,否则返回`false`。 2. 获取指定年份中某个月的天数: 不同月份的天数不同,这里使用`switch`语句来实现: ```java public static int getDaysInMonth(int m, int y) { switch (m) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: if (isLeapYear(y)) return 29; else return 28; } return 0; // 无效的月份值 } ``` 这个函数会返回给定月份在给定年份中的天数。 3. 判断给定的日期是否合法: 日期通常以"YYYYMMDD"的形式表示,如下所示的函数会检查输入的字符串是否代表一个有效的日期: ```java public boolean dateCheck(String ldate) { try { String lyearStr = ldate.substring(0, 4); int lyear = Integer.parseInt(lyearStr); int lmonth = Integer.parseInt(ldate.substring(4, 6)); int lday = Integer.parseInt(ldate.substring(6, 8)); if (lmonth < 1 || lmonth > 12) { return false; } if (lday < 1 || lday > DateUtil.getDaysInMonth(lmonth, lyear)) { return false; } } catch (Exception e) { return false; } return true; } ``` 如果输入的日期有效,这个函数返回`true`,否则返回`false`。 4. 计算两个日期之间的天数: 计算日期差需要将日期转换成`java.util.Date`对象,然后用`getTime()`方法获取毫秒值,最后计算差值并转换成天数: ```java public long getDaysBetweenDates(String date1, String date2) throws DataFormatException { SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd"); long myTime; long myTime2; try { Date aDate = formatter.parse(date1); Date aDate2 = formatter.parse(date2); myTime = aDate.getTime(); myTime2 = aDate2.getTime(); long days = (myTime2 - myTime) / (1000 * 60 * 60 * 24); return days; } catch (ParseException e) { throw new DataFormatException("Invalid date format"); } } ``` 这个函数会返回两个日期之间的天数。 这些方法是Java中处理日期判断的基本操作,可以满足很多实际场景的需求。在实际开发中,还可以使用Java 8引入的`java.time`包,它提供了更强大且易于使用的日期时间API,如`LocalDate`、`MonthDay`等类,能够更方便地进行日期计算和判断。