feat: Fix age display and test
This commit is contained in:
@@ -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
15
src/tests/test_misc.py
Normal 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)))
|
Reference in New Issue
Block a user