import groovy.time.TimeCategory
// criamos uma data de nascimento
def d = new Date()
d.set(year: 1987, date: 28, month: 5)
// calculamos a idade da pessoa
def age
use(TimeCategory) {
age = new Date() - d
}
age = age.days / 365
// iteramos e utilizamos a data de aniversário para alguma coisa
0.upto(age) {
use(TimeCategory) {
println "No ano de ${d[1]}, seu aniversário foi no(a): ${MyFormatter.showDayOfWeek(d)}"
d = d + 1.years
}
}
// formatador para ajudar a mostrar o dia da semana do aniversário
class MyFormatter {
private static String format = "EEEEEE"
static String showDayOfWeek(date) {
return date.format(format)
}
}
O snippet de código utiliza a classe groovy.time.TimeCategory.