Будьте осторожны с функцией “получить номер недели”. Независимо от языка и платформы, с ней легко прострелить ногу. И когда это случается? Конечно, на стыке годов в предновогоднюю неделю. Лучшее время, чтобы чинить баг.

Дело в том, что номер недели бывает разный. Есть обычный, когда день 2025-12-31 – это неделя 53. А есть ISO-шный, когда 2025-12-31 – это неделя 1. Скажем, в Postgres все способы извлечь неделю являются ISO:

select extract(week from '2025-12-31'::date);
-- 1

select to_char('2025-12-31'::date, 'IW');
-- 01

В Джаве больше контроля: есть поля weekOfYear и weekOfWeekBasedYear:

(.get (java.time.LocalDate/parse "2025-12-31")
      (.weekOfWeekBasedYear java.time.temporal.WeekFields/ISO))
;; 1

(.get (java.time.LocalDate/parse "2025-12-31")
      (.weekOfYear java.time.temporal.WeekFields/ISO))
;; 53

Разумеется, их легко перепутать, и файлы уйдут не туда.

Кстати, в корпоративной программе учета часов в декабре нет недели 53. Если работал 29 и 30 декабря, добавляй часы вручную к неделе 52. Подозреваю, что дело в ISO-шном номере 1.

Поздравляю вас с еще одним поводом не расслаблять булки перед праздником.