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
20
jrnl/time.py
20
jrnl/time.py
|
@ -18,12 +18,19 @@ def parse(date_str, inclusive=False, default_hour=None, default_minute=None):
|
||||||
elif isinstance(date_str, datetime):
|
elif isinstance(date_str, datetime):
|
||||||
return date_str
|
return date_str
|
||||||
|
|
||||||
try:
|
default_date = DEFAULT_FUTURE if inclusive else DEFAULT_PAST
|
||||||
date = dateparse(date_str, default=DEFAULT_FUTURE if inclusive else DEFAULT_PAST)
|
date = None
|
||||||
flag = 1 if date.hour == date.minute == 0 else 2
|
while not date:
|
||||||
date = date.timetuple()
|
try:
|
||||||
except ValueError:
|
date = dateparse(date_str, default=default_date)
|
||||||
date, flag = CALENDAR.parse(date_str)
|
flag = 1 if date.hour == date.minute == 0 else 2
|
||||||
|
date = date.timetuple()
|
||||||
|
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.
|
if not flag: # Oops, unparsable.
|
||||||
try: # Try and parse this as a single year
|
try: # Try and parse this as a single year
|
||||||
|
@ -45,5 +52,4 @@ def parse(date_str, inclusive=False, default_hour=None, default_minute=None):
|
||||||
dt = datetime.now() - date
|
dt = datetime.now() - date
|
||||||
if dt.days < -28:
|
if dt.days < -28:
|
||||||
date = date.replace(date.year - 1)
|
date = date.replace(date.year - 1)
|
||||||
|
|
||||||
return date
|
return date
|
||||||
|
|
Loading…
Add table
Reference in a new issue