如何找到java或groovy中两个日期之间的天数? [英] How to find the number of days between two dates in java or groovy?
问题描述
long diff = milliseconds2 - milliseconds1;我有一个方法使用以下逻辑来计算天之间的差异。
long diffDays = diff /(24 * 60 * 60 * 1000);
但我想要的是, 2011年9月9日至2011年2月19日 code>应该返回我
11
天,而不考虑秒或毫秒的考虑因素。我该如何做到这一点?
对于你问的groovy解决方案,你应该考虑使用这个:
use(groovy.time.TimeCategory){
def duration = date1 - date2
printlndays:$ {duration.days },Hours:$ {duration.hours}
这很容易理解并且非常可读。你问了一个例子,它是如何用一个简单的方法来计算两个日期之间的日子。所以这里是你的例子。
class示例{
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
}
}
}
如果你运行这个例子,它会打印你 7
。您可以在()之后使用 before()
和来启用反向日期,以增强此方法。
I have a method which uses following logic to calculate difference between days.
long diff = milliseconds2 - milliseconds1;
long diffDays = diff / (24 * 60 * 60 * 1000);
but I want for ex, 9th feb 2011 to 19th feb 2011
should return me 11
days irrespective of second or milliseconds consideration. How can I achieve this?
For the groovy solution you asked for you should consider using this:
use(groovy.time.TimeCategory) {
def duration = date1 - date2
println "days: ${duration.days}, Hours: ${duration.hours}"
}
It's very easy to understand and extremely readable. You asked for a example how this can be used in an easy method which calculates the days between two dates. So here is your example.
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
}
}
}
If you run this example it will print you 7
. You can also enhance this method by using before()
and after()
to enable inverted dates.
这篇关于如何找到java或groovy中两个日期之间的天数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!