feat: Fix age display and test

This commit is contained in:
2025-10-18 18:45:17 +02:00
parent 7ff0a9b489
commit 5a02837d7f
2 changed files with 21 additions and 6 deletions

View File

@@ -17,10 +17,10 @@ def pluralize(number, letter="e"):
def age_as_hr_string(age: datetime.timedelta) -> str:
days = age.days
weeks = age.days / 7
months = age.days / 30
years = age.days / 365
days = int(age.days)
weeks = int(age.days / 7)
months = int(age.days / 30)
years = int(age.days / 365)
if years >= 1:
months = months - 12 * years
return f'{years:.0f} Jahr{pluralize(years)} und {months:.0f} Monat{pluralize(months)}'

15
src/tests/test_misc.py Normal file
View File

@@ -0,0 +1,15 @@
import datetime
from fellchensammlung.tools.misc import age_as_hr_string
from django.test import TestCase
class AgeTest(TestCase):
def test_age_as_hr_string(self):
self.assertEqual("7 Wochen", age_as_hr_string(datetime.timedelta(days=50)))
self.assertEqual("3 Monate", age_as_hr_string(datetime.timedelta(days=100)))
self.assertEqual("10 Monate", age_as_hr_string(datetime.timedelta(days=300)))
self.assertEqual("1 Jahr und 4 Monate", age_as_hr_string(datetime.timedelta(days=500)))
self.assertEqual("1 Jahr und 11 Monate", age_as_hr_string(datetime.timedelta(days=700)))
self.assertEqual("2 Jahre und 6 Monate", age_as_hr_string(datetime.timedelta(days=900)))