Groovy already adds a lot of extra methods to the Date
and Calendar
classes. And since Groovy 2.2 we can use the upto()
method and loop over a begin date up to another date. We pass a closure that is executed for each day. We can also iterate back using the downto()
method.
// We can loop from today // to nextWeek and invoke a closure for each day. def today = new Date().clearTime() def nextWeek = today + 7 today.upto(nextWeek) { // Print day of the week. println it.format('EEEE') } println() nextweek.downto(today) { prinltn it.format('EEEE') }
When we run the code we get the following output:
Monday Tuesday Wednesday Thursday Friday Saturday Sunday Monday Monday Sunday Saturday Friday Thursday Wednesday Tuesday Monday
In the next sample we use the upto()
method on the Calendar
class:
// upto() also works on Calendar objects. def to = Calendar.instance to.set(year: 2013, month: Calendar.NOVEMBER, date: 18) def from = Calendar.instance from.set(year: 2013, month: Calendar.NOVEMBER, date: 13) from.upto(to) { if (it[Calendar.DATE] % 2 == 0) { print 'Even' } else { print 'Odd' } println ' date' }
We get the following output:
Odd date Even date Odd date Even date Odd date Even date
Code written with Groovy 2.2.