segunda-feira, novembro 12, 2012

Subtracção de datas em Java

Para quem vem do C#, e não trabalhava em Java mais a sério já há uns anos, existem coisas que me irritam pela complexidade desnecessária e pouca versatilidade que têm.

Um exemplo disso é a subtracção de datas, algo que em C# faria numa linha aqui tenho de ter meia dúzia de linhas para o fazer. Vejamos uma função que retorna a diferença de anos de uma data qualquer para a data corrente.

public int SubYears(Date data){
                int currentYear = Calendar.getInstance().get(Calendar.YEAR);
                Calendar c = Calendar.getInstance();
                c.setTime(data);
                int yearBirth = c.get(Calendar.YEAR);
               return currentYear - yearBirth;
}

É só a mim ou isto parecem demasiadas 'cambalhotas' para fazer uma coisa tão simples?

Sem comentários: