Если у вас есть возможность - никогда не работайте с человеческим временем, когда программируете. Потому что сделать все правильно нереально тяжело. Начиная с високосных годов:

И продолжая временными зонами:

Причем даже крупные компании не всегда все могут сделать правильно. Из недавнего - Apple фигово показывает календарь:

И наконец, большой список заблуждений про время: https://infiniteundo.com/post/25509354022/more-falsehoods-programmers-believe-about-time