DevThapa
DevThapa

Reputation: 173

How can I determine if a date is between two dates in Groovy?

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

Answers (2)

Gaurav Khurana
Gaurav Khurana

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

elixir
elixir

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

Related Questions