week of year

This commit is contained in:
PyryL 2022-12-11 10:03:43 +02:00
parent dab58a8162
commit 6e8c2da118
2 changed files with 14 additions and 1 deletions

View File

@ -70,7 +70,15 @@ class FixedDate:
return 1 return 1
return ((self.day_of_month-1) // 7) + 1 return ((self.day_of_month-1) // 7) + 1
# TODO: week of year @property
def week_of_year(self) -> int:
"""The ordinal of the week in year. Value 53 for year day.
Returns:
int: In range 1...53
"""
return ((self._day_of_year-1) // 7) + 1
# TODO: weekday # TODO: weekday
# TODO: year quarter # TODO: year quarter
# TODO: datetime instance # TODO: datetime instance

View File

@ -10,6 +10,7 @@ class TestBasicDatetimeInit(unittest.TestCase):
self.assertEqual(fixed_date.day_of_month, 1) self.assertEqual(fixed_date.day_of_month, 1)
self.assertEqual(fixed_date.day_of_year, 1) self.assertEqual(fixed_date.day_of_year, 1)
self.assertEqual(fixed_date.week_of_month, 1) self.assertEqual(fixed_date.week_of_month, 1)
self.assertEqual(fixed_date.week_of_year, 1)
def test_datetime_init_february_last(self): def test_datetime_init_february_last(self):
fixed_date = FixedDate(date=datetime(2022, 2, 25)) fixed_date = FixedDate(date=datetime(2022, 2, 25))
@ -18,6 +19,7 @@ class TestBasicDatetimeInit(unittest.TestCase):
self.assertEqual(fixed_date.day_of_month, 28) self.assertEqual(fixed_date.day_of_month, 28)
self.assertEqual(fixed_date.day_of_year, 56) self.assertEqual(fixed_date.day_of_year, 56)
self.assertEqual(fixed_date.week_of_month, 4) self.assertEqual(fixed_date.week_of_month, 4)
self.assertEqual(fixed_date.week_of_year, 8)
def test_datetime_init_sol_month(self): def test_datetime_init_sol_month(self):
fixed_date = FixedDate(date=datetime(2022, 6, 20)) fixed_date = FixedDate(date=datetime(2022, 6, 20))
@ -26,6 +28,7 @@ class TestBasicDatetimeInit(unittest.TestCase):
self.assertEqual(fixed_date.day_of_month, 3) self.assertEqual(fixed_date.day_of_month, 3)
self.assertEqual(fixed_date.day_of_year, 171) self.assertEqual(fixed_date.day_of_year, 171)
self.assertEqual(fixed_date.week_of_month, 1) self.assertEqual(fixed_date.week_of_month, 1)
self.assertEqual(fixed_date.week_of_year, 25)
def test_datetime_init_december_last(self): def test_datetime_init_december_last(self):
fixed_date = FixedDate(date=datetime(2022, 12, 30)) fixed_date = FixedDate(date=datetime(2022, 12, 30))
@ -35,6 +38,7 @@ class TestBasicDatetimeInit(unittest.TestCase):
self.assertFalse(fixed_date.is_year_day) self.assertFalse(fixed_date.is_year_day)
self.assertEqual(fixed_date.day_of_year, 364) self.assertEqual(fixed_date.day_of_year, 364)
self.assertEqual(fixed_date.week_of_month, 4) self.assertEqual(fixed_date.week_of_month, 4)
self.assertEqual(fixed_date.week_of_year, 52)
def test_datetime_init_year_day(self): def test_datetime_init_year_day(self):
fixed_date = FixedDate(date=datetime(2022, 12, 31)) fixed_date = FixedDate(date=datetime(2022, 12, 31))
@ -44,3 +48,4 @@ class TestBasicDatetimeInit(unittest.TestCase):
self.assertTrue(fixed_date.is_year_day) self.assertTrue(fixed_date.is_year_day)
self.assertEqual(fixed_date.day_of_year, 365) self.assertEqual(fixed_date.day_of_year, 365)
self.assertEqual(fixed_date.week_of_month, 1) self.assertEqual(fixed_date.week_of_month, 1)
self.assertEqual(fixed_date.week_of_year, 53)