查找天数

时间:2014-07-29 09:23:57

标签: java calendar gregorian-calendar

我有两个日期格式的时间戳。

如何获得给定范围内的天数?

SimpleDateFormat sdf = new SimpleDateFormat("dd MM yyyy HH:mm:ss");
Date begin=sdf.parse("27 02 2014 23:00:00");
Date end=sdf.parse("01 03 2014 00:00:10");

在上述情况下,必须是3,即(2月27日,2月28日和1月1日)

int days = (int) (end.getTime() - begin.getTime())/(1000*3600*24) ;

上述方法在考虑整个时间戳时没有帮助。

1 个答案:

答案 0 :(得分:2)

你可以使用JodaTime。

import org.joda.*;
import org.joda.time.*;

DateTime start = new DateTime(2014, 02, 27, 0, 0, 0, 0);
DateTime end = new DateTime(2014, 03, 1, 01, 0, 0, 0);
Interval interval = new Interval(start, end);
Period period = interval.toPeriod();
int days = period.getDays();

更多信息here

但是,如果你想在不考虑小时的情况下找到一个范围内的天数,而只考虑一天,一个月和一年...为什么你不做你正在做的事情但只解析日期得到日,月和年?这样,您用来查找天数的公式将始终有效。