Так да. Если не брать частные случаи неоднозначной трактовки конца того же декабря как 23.59 или 00.00, что уже другой год, перевода часов и смены часового пояса, то обычно любые условия юзер предполагает в локальном времени и для +03:00 конец декабря будет 24 - 3 = 21:00 в utc\gmt. Если программа\бд не хранит часовую зону юзера или не имеет к ней доступа, имеет только год, то расчет конца года может сделать как 31.12 00:00\23:59 в utc (а что ей еще остается), что в локальном времени будет уже 00:00 + 3 = 3 часа утра 1 января другого года, мне кажется, что что-то такое и предполагал автор, хотя и не факт. Про другие календари там в комментах уже упоминали, из нетрадиционных я работал только с юлианским, если взять 31 декабря в юлианском, то при переводе в григорианский он закончится около 13 января, хотя автор наверное все таки предполагал смену года в пределах одного календаря, кгм..