diff --git a/src/fellchensammlung/tools/misc.py b/src/fellchensammlung/tools/misc.py index 5403dfe..c2b2eaa 100644 --- a/src/fellchensammlung/tools/misc.py +++ b/src/fellchensammlung/tools/misc.py @@ -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)}' @@ -52,9 +52,9 @@ def time_since_as_hr_string(age: datetime.timedelta) -> str: elif weeks >= 3: text = _("vor %(weeks)d Wochen") % {"weeks": weeks} 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: - 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: text = ngettext("vor einer Minute", "vor %(count)d Minuten", minutes, ) % {"count": minutes, } else: diff --git a/src/tests/test_misc.py b/src/tests/test_misc.py new file mode 100644 index 0000000..e95fa61 --- /dev/null +++ b/src/tests/test_misc.py @@ -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))) \ No newline at end of file