From c45a8436117233fd3ff74553f1cb711f05a30005 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 9 Feb 2026 17:02:41 +0100 Subject: [PATCH] =?UTF-8?q?Aktualisiere=20die=20Altersberechnung=20in=20Fa?= =?UTF-8?q?lukantWidget:=20=C3=84ndere=20die=20Umrechnung=20von=20Tagen=20?= =?UTF-8?q?in=20Jahre=20und=20runde=20auf=20das=20n=C3=A4chste=20Jahr=20f?= =?UTF-8?q?=C3=BCr=20eine=20erwartbare=20Anzeige.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/widgets/FalukantWidget.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/widgets/FalukantWidget.vue b/frontend/src/components/widgets/FalukantWidget.vue index 6e941ae..e1b30b6 100644 --- a/frontend/src/components/widgets/FalukantWidget.vue +++ b/frontend/src/components/widgets/FalukantWidget.vue @@ -69,16 +69,18 @@ export default { }, methods: { /** - * Backend liefert für Falukant aktuell das Alter als Tage (differenceInDays). - * Für die Anzeige und die Age-Groups brauchen wir Jahre. + * Backend liefert für Falukant das Alter als (Spiel-)Tage. + * Im Spiel entsprechen 365 Tage einem Jahr, damit die Alterung schneller/spielbar ist. + * + * Wichtig: Wir runden auf das nächste Jahr, damit die Anzeige erwartbar ist + * (sonst wirkt sie oft "ein Jahr zu jung" kurz vor dem nächsten Jahr). */ _ageYearsFromWidgetValue(ageValue) { const n = Number(ageValue); if (Number.isNaN(n)) return null; - // Heuristik: >= 365 wird als Tage interpretiert. - // Falls das Backend irgendwann auf Jahre umstellt, bleiben Werte < 365 unverändert. - const years = n >= 365 ? Math.floor(n / 365) : Math.floor(n); + // Spiel-Zeit: 365 Tage = 1 Jahr + const years = Math.round(n / 365); return Number.isFinite(years) ? years : null; }, _getAgeGroupKey(age) {