我有一个方法,它使用以下逻辑来计算天数之间的差异.
long diff = milliseconds2 - milliseconds1;
long diffDays = diff / (24 * 60 * 60 * 1000);
Run Code Online (Sandbox Code Playgroud)
但是我要求前者,无论是秒还是毫秒考虑9th feb 2011 to 19th feb 2011都应该给我11几天.我怎样才能做到这一点?
Chr*_*wes 32
对于你要求的groovy解决方案,你应该考虑使用这个:
use(groovy.time.TimeCategory) {
def duration = date1 - date2
println "days: ${duration.days}, Hours: ${duration.hours}"
}
Run Code Online (Sandbox Code Playgroud)
它非常容易理解,而且非常易读.您问了一个示例,如何在一个简单的方法中使用它来计算两个日期之间的天数.所以这是你的榜样.
class Example {
public static void main(String[] args) {
def lastWeek = new Date() - 7;
def today = new Date()
println daysBetween(lastWeek, today)
}
static def daysBetween(def startDate, def endDate) {
use(groovy.time.TimeCategory) {
def duration = endDate - startDate
return duration.days
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您运行此示例,它将打印您7.您还可以通过使用before()和after()启用反转日期来增强此方法.
Joe*_*oel 12
这是一个很好的线,但对于日期使用JodaTime.
以下是使用JodaTime 计算日期间隔的方法.
Days days = Days.daysBetween(new DateTime(millis1), new DateTime(millis2));
int daysBetweenDates = days.getDays();
Run Code Online (Sandbox Code Playgroud)