https://github.com/gtkacz/temporal_adjusters_py
Adjusters are a key tool for modifying temporal objects. They exist to externalize the process of adjustment, permitting different approaches, as per the strategy design pattern. Temporal Adjuster provides tools that help pinpoint very specific moments in time, without having to manually count days, weeks, or months.
https://github.com/gtkacz/temporal_adjusters_py
date datetime package python temporal time
Last synced: 9 months ago
JSON representation
Adjusters are a key tool for modifying temporal objects. They exist to externalize the process of adjustment, permitting different approaches, as per the strategy design pattern. Temporal Adjuster provides tools that help pinpoint very specific moments in time, without having to manually count days, weeks, or months.
- Host: GitHub
- URL: https://github.com/gtkacz/temporal_adjusters_py
- Owner: gtkacz
- License: mit
- Created: 2024-06-13T11:38:34.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-09-08T03:11:13.000Z (10 months ago)
- Last Synced: 2025-09-20T18:40:14.290Z (9 months ago)
- Topics: date, datetime, package, python, temporal, time
- Language: Python
- Homepage: https://pypi.org/project/temporal-adjuster/
- Size: 175 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Authors: AUTHORS.md
Awesome Lists containing this project
README
# Temporal Adjuster
Adjusters are a key tool for modifying temporal objects. They exist to externalize the process of adjustment, permitting different approaches, as per the strategy design pattern. Temporal Adjuster provides tools that help pinpoint very specific moments in time, without having to manually count days, weeks, or months. In essence, a Temporal Adjuster is a function that encapsulates a specific date/time manipulation rule. It operates on a temporal object (representing a date, time, or datetime) to produce a new temporal object adjusted according to the rule. Examples might be an adjuster that sets the date avoiding weekends, or one that sets the date to the last day of the month.
[](https://pypi.python.org/pypi/temporal-adjuster/)
[](https://pypi.org/project/temporal_adjuster/)
[](https://pypi.org/project/temporal-adjuster/)
[](https://pypistats.org/packages/temporal_adjuster)

[](https://opensource.org/licenses/MIT)
[](https://github.com/gtkacz/temporal_adjusters_py/actions/workflows/CI.yml)
[](https://codecov.io/github/gtkacz/temporal_adjusters_py)
[](http://temporal-adjusters-py.readthedocs.io/?badge=latest)
[](https://Github.com/gtkacz/temporal_adjusters_py/commit/)
[](https://Github.com/gtkacz/temporal_adjusters_py/commit/)


[](https://Github.com/gtkacz/temporal_adjusters_py/stargazers/)
[](https://Github.com/gtkacz/temporal_adjusters_py/watchers/)
[](https://Github.com/gtkacz/temporal_adjusters_py/issues/)
[](https://Github.com/gtkacz/temporal_adjusters_py/issues?q=is%3Aissue+is%3Aclosed)
[](http://isitmaintained.com/project/gtkacz/temporal_adjusters_py "Average time to resolve an issue")
[](http://isitmaintained.com/project/gtkacz/temporal_adjusters_py "Percentage of issues still open")
[](https://Github.com/gtkacz/temporal_adjusters_py/pull/)
## Installation
You can install Temporal Adjuster using pip:
```sh
pip install temporal-adjuster
```
## Usage
This package provides a set of predefined temporal adjusters that can be used to adjust a temporal object in various ways. For example:
```py
>>> from datetime import date, datetime
>>> from temporal_adjuster import TemporalAdjuster
>>> from temporal_adjuster.common.enums import Weekday
>>> TemporalAdjuster.first_day_of_next_week(date(2021, 1, 1))
datetime.date(2021, 1, 4)
>>> TemporalAdjuster.last_day_of_last_month(datetime(2021, 1, 1))
datetime.datetime(2020, 12, 31)
>>> TemporalAdjuster.first_of_year(Weekday.SATURDAY, date(2021, 1, 1))
datetime.date(2021, 1, 2)
>>> TemporalAdjuster.nth_of_month(Weekday.SUNDAY, datetime(2021, 5, 1), 2)
datetime.datetime(2021, 5, 9)
>>> TemporalAdjuster.next(Weekday.MONDAY, datetime(2021, 2, 11), 2)
datetime.datetime(2021, 2, 15)
```
## Contributing
If you have any suggestions or improvements for this package, feel free to submit a pull request or open an issue on the [GitHub repository](https://github.com/gtkacz/temporal_adjusters_py) as per the CONTRIBUTING document. We appreciate any feedback or contributions!