Aprenda de uma vez a programar corretamente com datas e horas
Em programação, trabalhar com datas e horas não é nada trivial. O que a princípio parece estranho, já que no dia-a-dia lidamos com isso de maneira tão natural, que é difícil imaginar que seja tão complicado. Eu já fiz alguns posts mostrando como datas e horas podem ser traiçoeiras e causar bugs e situações estranhas:
- Lidando com datas em JavaScript (ou "criei uma data, mas mostra um dia a menos")
- Aritmética de datas e o horário de verão (ou "Um dia pode não ter 24 horas")
- Aritmética de Datas: somar 1 mês não é o mesmo que somar 30 dias (ou 31, ou qualquer outro valor fixo)
- Datas/Horas vs Durações - Não confunda! (ou: "Como não se atrapalhar ao calcular a diferença entre datas")
E a melhor forma de não cair nessas armadilhas - e também de saber como sair delas, caso caia - é entendendo muito bem os conceitos que envolvem a contagem do tempo: calendários, fusos horários, e toda a complexidade envolvida, para que no fim a gente consiga saber que dia é hoje e que horas são.
E foi depois de apanhar muito com datas e horas, e estudar bastante para conseguir ganhar esta batalha, que resolvi escrever o livro "Datas e horas - Conceitos fundamentais e as APIs do Java".
Ah, é em Java? Não quero!
Calma, garanto que ele também serve para você!
O livro é dividido em três partes.
Na primeira, são explicados os conceitos que todo desenvolvedor deve saber com relação a datas e horas. É uma parte bem conceitual, e que não é específica a nenhuma linguagem de programação. Ou seja, o conhecimento adquirido aqui pode muito bem ser aplicado a qualquer linguagem, já que todas seguem os mesmos princípios, mudando apenas as formas de fazer.
Na segunda e terceira partes, são explicadas as API's do Java, tanto a antiga (Date
e Calendar
) quanto a nova (java.time
).
Mas mesmo se você não programa em Java, ainda assim poderá aproveitar a segunda e terceira partes do livro. Apesar de terem muito código, estes capítulos também aprofundarão alguns conceitos e discutirão casos de uso e situações práticas que não aparecem na primeira parte.
E claro, se estiver travado com algum problema envolvendo datas, pode criar um post aqui no TabNews, que estou sempre de olho :-)