java获取两个时间之间天数 头尾双算
时间: 2023-09-10 12:10:49 浏览: 62
可以使用Java中的Calendar类和Date类来获取两个时间之间的天数。
以下是一个示例代码:
```java
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
/**
* 获取两个时间之间的天数(头尾双算)
*
* @param startDate 开始时间
* @param endDate 结束时间
* @return 两个时间之间的天数
*/
public static int getDaysBetweenTwoDates(Date startDate, Date endDate) {
if (startDate == null || endDate == null) {
return 0;
}
Calendar startCalendar = Calendar.getInstance();
startCalendar.setTime(startDate);
Calendar endCalendar = Calendar.getInstance();
endCalendar.setTime(endDate);
// 将时间设置为0时0分0秒
startCalendar.set(Calendar.HOUR_OF_DAY, 0);
startCalendar.set(Calendar.MINUTE, 0);
startCalendar.set(Calendar.SECOND, 0);
endCalendar.set(Calendar.HOUR_OF_DAY, 0);
endCalendar.set(Calendar.MINUTE, 0);
endCalendar.set(Calendar.SECOND, 0);
// 计算两个日期之间的天数
int days = 0;
while (startCalendar.before(endCalendar)) {
startCalendar.add(Calendar.DAY_OF_MONTH, 1);
days++;
}
days++; // 头尾双算
return days;
}
}
```
在上面的代码中,我们使用了Calendar类将日期设置为0时0分0秒,这是因为如果不设置,在计算两个日期之间的天数时可能会出现误差。同时,我们使用while循环计算两个日期之间的天数,并且在最后加上1,以便将结束日期也计算在内。
使用示例:
```java
Date startDate = new Date(); // 假设开始时间为当前时间
Date endDate = new Date(System.currentTimeMillis() + 3 * 24 * 3600 * 1000L); // 假设结束时间为当前时间之后3天
int days = DateUtil.getDaysBetweenTwoDates(startDate, endDate);
System.out.println("两个时间之间的天数为:" + days);
```
输出结果:
```
两个时间之间的天数为:4
```
可以看到,头尾都算上了,结果为4天。