pendulum
pendulum copied to clipboard
Fix leap year & negative week number issue
Pull Request Check List
- [x] Added tests for changed code.
- [ ] Updated documentation for changed code. ^ There are no related documentation
This PR attempts to fix the following issues:
- https://github.com/sdispater/pendulum/issues/438
- https://github.com/sdispater/pendulum/issues/455
- https://github.com/sdispater/pendulum/issues/536
- https://github.com/sdispater/pendulum/issues/587
- https://github.com/sdispater/pendulum/issues/598
If this PR is merged, the following PRs should be closed too:
- https://github.com/sdispater/pendulum/pull/718
The following tests are mapped to their respective issues:
# https://github.com/sdispater/pendulum/issues/438
assert pendulum.Date(2020, 1, 7).week_of_month == 2
assert pendulum.Date(2020, 1, 14).week_of_month == 3
# https://github.com/sdispater/pendulum/issues/455
assert pendulum.Date(2000, 1, 1).week_of_month == 1
assert pendulum.Date(2000, 1, 3).week_of_month == 2
assert pendulum.Date(2029, 12, 31).week_of_month == 6
# https://github.com/sdispater/pendulum/issues/536
assert pendulum.Date(2019, 12, 29).week_of_month == 5
assert pendulum.Date(2019, 12, 31).week_of_month == 6
assert pendulum.Date(2019, 12, 30).week_of_month == 6
assert pendulum.Date(2021, 1, 2).week_of_month == 1
assert pendulum.Date(2021, 1, 9).week_of_month == 2
assert pendulum.Date(2021, 1, 16).week_of_month == 3
assert pendulum.Date(2021, 1, 23).week_of_month == 4
assert pendulum.Date(2021, 1, 30).week_of_month == 5
# https://github.com/sdispater/pendulum/issues/587
assert pendulum.Date(2021, 1, 15).week_of_month == 3
assert pendulum.Date(2023, 1, 2).week_of_month == 1
# https://github.com/sdispater/pendulum/issues/598
assert pendulum.Date(2022, 1, 1).week_of_month == 1
assert pendulum.Date(2022, 1, 3).week_of_month == 2
assert pendulum.Date(2022, 1, 10).week_of_month == 3
assert pendulum.Date(2021, 12, 29).week_of_month == 5
assert pendulum.Date(2021, 12, 30).week_of_month == 5
assert pendulum.Date(2021, 12, 31).week_of_month == 5