From 47841b91106d75ac7378b472ad1dce944c490441 Mon Sep 17 00:00:00 2001 From: Marcel Date: Fri, 8 May 2026 10:51:21 +0200 Subject: [PATCH] refactor(documents): YearMonth.from(d).toString() for density key (#385) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit YearMonth.from(d).toString() emits the same canonical YYYY-MM string as the previous String.format("%04d-%02d", …) call but reads as a single intent-revealing expression. Existing assertions on "1915-08", "1916-01", … pin the output format unchanged. Co-Authored-By: Claude Sonnet 4.6 --- .../org/raddatz/familienarchiv/document/DocumentService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentService.java b/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentService.java index bb2c9300..3399a334 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/document/DocumentService.java @@ -48,6 +48,7 @@ import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.time.LocalDate; +import java.time.YearMonth; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -171,8 +172,7 @@ public class DocumentService { Map counts = new java.util.TreeMap<>(); for (LocalDate d : dates) { - String month = String.format("%04d-%02d", d.getYear(), d.getMonthValue()); - counts.merge(month, 1, Integer::sum); + counts.merge(YearMonth.from(d).toString(), 1, Integer::sum); } List buckets = counts.entrySet().stream() .map(e -> new MonthBucket(e.getKey(), e.getValue()))