groovy time TimeCategory data nascimento

Dica em Groovy - Para cada dia do aniversário de uma pessoa

Identificador: 11396
Autor: Alan Rodrigues   segunda-feira, Dia 1 de maio de 2023, às 02:47:52 horas
Revisado Por: Alan Rodrigues   sábado, Dia 5 de julho de 2014, às 18:53:44 horas
Visualização: Todos

Pontos: 0   Acessos: 6075

Olá pessoal.
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)
    }
}
O snippet de código utiliza a classe groovy.time.TimeCategory.
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