Reputation: 173
How can I check if a date is between two other dates in Groovy? Is there any function like BETWEEN in MySQL?
Upvotes: 0
Views: 6000
Reputation: 3901
The main logic is to convert your date into the format of YYYYMMDD, then you can check if date1 <=date3 <=date2, then you can know if date 3 is between date2 and date1
Below is the code for groovy which can run in soapui. e.g. today is 20171225 an after 5 days its 20171230 . So now 20171227
def date1 = new Date().format("YYYYMMdd")
def date2 = (new Date()+5).format("YYYYMMdd")
def date3 = (new Date()+3).format("YYYYMMdd")
log.info "date1 is " + date1 + " date2 is " + date2 + " date3 is " + date3
if(date2<=date1 && date3>=date1)
{
log.info "date3 is between date1 and date2"
}
else
{
log.info "Date3 is not between date1 and date2"
}
Upvotes: 1
Reputation: 1442
There isn't any magic function but you can easily write a function to do that
Date date1 = new Date()
Date date2 = new Date().plus(2)
Date toCheck1 = new Date().plus(3)
Date toCheck2 = new Date().plus(1)
def dateBetween(Date date1, Date date2, Date toCheck){
return toCheck.after(date1) && toCheck.before(date2)
}
dateBetween(date1, date2, toCheck1) // returns false
dateBetween(date1, date2, toCheck2) // returns true
Upvotes: 3