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: def age_as_hr_string(age: datetime.timedelta) -> str:
days = age.days days = int(age.days)
weeks = age.days / 7 weeks = int(age.days / 7)
months = age.days / 30 months = int(age.days / 30)
years = age.days / 365 years = int(age.days / 365)
if years >= 1: if years >= 1:
months = months - 12 * years months = months - 12 * years
return f'{years:.0f} Jahr{pluralize(years)} und {months:.0f} Monat{pluralize(months)}' return f'{years:.0f} Jahr{pluralize(years)} und {months:.0f} Monat{pluralize(months)}'
@@ -52,9 +52,9 @@ def time_since_as_hr_string(age: datetime.timedelta) -> str:
elif weeks >= 3: elif weeks >= 3:
text = _("vor %(weeks)d Wochen") % {"weeks": weeks} text = _("vor %(weeks)d Wochen") % {"weeks": weeks}
elif days >= 1: elif days >= 1:
text = ngettext("vor einem Tag","vor %(count)d Tagen", days,) % {"count": days,} text = ngettext("vor einem Tag", "vor %(count)d Tagen", days, ) % {"count": days, }
elif hours >= 1: elif hours >= 1:
text = ngettext("vor einer Stunde", "vor %(count)d Stunden", hours,) % {"count": hours,} text = ngettext("vor einer Stunde", "vor %(count)d Stunden", hours, ) % {"count": hours, }
elif minutes >= 1: elif minutes >= 1:
text = ngettext("vor einer Minute", "vor %(count)d Minuten", minutes, ) % {"count": minutes, } text = ngettext("vor einer Minute", "vor %(count)d Minuten", minutes, ) % {"count": minutes, }
else: else:

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)))