Quero deixar uma dica de programação em Groovy que pode ser útil para outras coisas:
- Tendo a data de nascimento de uma pessoa, quero saber em qual dia caiu todos os aniversários da pessoa
Para rodar o código é só usar o excelente GroovyConsole, segue abaixo:
Java Code
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)
}
}
Essa classe é ótima e possui todas as ferramentas necessárias para cálculos de datas em Groovy. Saiba mais sobre ela aqui.
Até a próxima