summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--odoo/tools/date_utils.py18
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.