diff options
| -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. |
