JAVA日期处理:判断与计算
3星 · 超过75%的资源 需积分: 50 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`等类,能够更方便地进行日期计算和判断。
2020-08-26 上传
2012-04-24 上传
2012-12-07 上传
2020-09-04 上传
2011-09-14 上传
2013-01-19 上传
2019-07-29 上传
2019-03-06 上传
xuchan
- 粉丝: 0
- 资源: 2
最新资源
- CoreOS部署神器:configdrive_creator脚本详解
- 探索CCR-Studio.github.io: JavaScript的前沿实践平台
- RapidMatter:Web企业架构设计即服务应用平台
- 电影数据整合:ETL过程与数据库加载实现
- R语言文本分析工作坊资源库详细介绍
- QML小程序实现风车旋转动画教程
- Magento小部件字段验证扩展功能实现
- Flutter入门项目:my_stock应用程序开发指南
- React项目引导:快速构建、测试与部署
- 利用物联网智能技术提升设备安全
- 软件工程师校招笔试题-编程面试大学完整学习计划
- Node.js跨平台JavaScript运行时环境介绍
- 使用护照js和Google Outh的身份验证器教程
- PHP基础教程:掌握PHP编程语言
- Wheel:Vim/Neovim高效缓冲区管理与导航插件
- 在英特尔NUC5i5RYK上安装并优化Kodi运行环境