diff options
| author | jem-odoo <jem@openerp.com> | 2019-06-28 12:32:16 +0000 |
|---|---|---|
| committer | jem-odoo <jem@openerp.com> | 2019-07-04 08:19:08 +0000 |
| commit | 86f5b6a926d5b0fa5b07ee943f6c84a904c48abd (patch) | |
| tree | 0c2daf5b75f0406ab24c3e409da022ba28fc4afe /odoo/tools/date_utils.py | |
| parent | 01c279ced14e9ad23ce191e8c51abffb53d603c6 (diff) | |
[IMP] tools: get_timedelta helper
This commit introduces a small helper to return
a timedelta given a quantity and a time unit (day, hour,
month, ...)
Task-2024216
closes odoo/odoo#34576
Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
Diffstat (limited to 'odoo/tools/date_utils.py')
| -rw-r--r-- | odoo/tools/date_utils.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/odoo/tools/date_utils.py b/odoo/tools/date_utils.py index 702913ff04e..c7b6d0800d1 100644 --- a/odoo/tools/date_utils.py +++ b/odoo/tools/date_utils.py @@ -80,6 +80,23 @@ def get_fiscal_year(date, day=31, month=12): return date_from, date_to +def get_timedelta(qty, granularity): + """ + Helper to get a `relativedelta` object for the given quantity and interval unit. + :param qty: the number of unit to apply on the timedelta to return + :param granularity: Type of period in string, can be year, quarter, month, week, day or hour. + + """ + switch = { + 'hour': relativedelta(hours=qty), + 'day': relativedelta(days=qty), + 'week': relativedelta(weeks=qty), + 'month': relativedelta(months=qty), + 'year': relativedelta(years=qty), + } + return switch[granularity] + + def start_of(value, granularity): """ Get start of a time period from a date or a datetime. @@ -193,6 +210,7 @@ def json_default(obj): return fields.Date.to_string(obj) return ustr(obj) + def date_range(start, end, step=relativedelta(months=1)): """Date range generator with a step interval. |
