Trabalhar com datas e horas envolve nuances suficientes para confundir o melhor de nós. E embora tenhamos explorado esses tópicos de cima a baixo, recomendamos mais um artigo:

Como não se perder no tempo: DateTime e Calendar

Aqui há mais linhas de código do que texto. É uma boa prática ler o texto e depois tentar reproduzir os exemplos da lição. Fazendo isso, tudo ficará bem melhor.