mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
Fix bug when omitting day in parsing
This commit is contained in:
parent
7f7f00e91b
commit
316374922b
1 changed files with 13 additions and 7 deletions
12
jrnl/time.py
12
jrnl/time.py
|
@ -18,11 +18,18 @@ def parse(date_str, inclusive=False, default_hour=None, default_minute=None):
|
|||
elif isinstance(date_str, datetime):
|
||||
return date_str
|
||||
|
||||
default_date = DEFAULT_FUTURE if inclusive else DEFAULT_PAST
|
||||
date = None
|
||||
while not date:
|
||||
try:
|
||||
date = dateparse(date_str, default=DEFAULT_FUTURE if inclusive else DEFAULT_PAST)
|
||||
date = dateparse(date_str, default=default_date)
|
||||
flag = 1 if date.hour == date.minute == 0 else 2
|
||||
date = date.timetuple()
|
||||
except ValueError:
|
||||
except Exception as e:
|
||||
if e.args[0] == 'day is out of range for month':
|
||||
y, m, d, H, M, S = default_date.timetuple()[:6]
|
||||
default_date = datetime(y, m, d - 1, H, M, S)
|
||||
else:
|
||||
date, flag = CALENDAR.parse(date_str)
|
||||
|
||||
if not flag: # Oops, unparsable.
|
||||
|
@ -45,5 +52,4 @@ def parse(date_str, inclusive=False, default_hour=None, default_minute=None):
|
|||
dt = datetime.now() - date
|
||||
if dt.days < -28:
|
||||
date = date.replace(date.year - 1)
|
||||
|
||||
return date
|
||||
|
|
Loading…
Add table
Reference in a new issue