[boobcoming] move parse_date to weboob/tools/date.py
This commit is contained in:
parent
23c228280d
commit
f21b5defb6
2 changed files with 53 additions and 50 deletions
|
|
@ -226,3 +226,52 @@ def parse_french_date(date):
|
|||
date = fr.sub(en, date)
|
||||
|
||||
return dateutil.parser.parse(date)
|
||||
|
||||
|
||||
WEEK = {'MONDAY': 0,
|
||||
'TUESDAY': 1,
|
||||
'WEDNESDAY': 2,
|
||||
'THURSDAY': 3,
|
||||
'FRIDAY': 4,
|
||||
'SATURDAY': 5,
|
||||
'SUNDAY': 6,
|
||||
'LUNDI': 0,
|
||||
'MARDI': 1,
|
||||
'MERCREDI': 2,
|
||||
'JEUDI': 3,
|
||||
'VENDREDI': 4,
|
||||
'SAMEDI': 5,
|
||||
'DIMANCHE': 6,
|
||||
}
|
||||
|
||||
|
||||
def get_date_from_day(day):
|
||||
today = date.today()
|
||||
today_day_number = today.weekday()
|
||||
|
||||
requested_day_number = WEEK[day.upper()]
|
||||
|
||||
if today_day_number < requested_day_number:
|
||||
day_to_go = requested_day_number - today_day_number
|
||||
else:
|
||||
day_to_go = 7 - today_day_number + requested_day_number
|
||||
|
||||
requested_date = today + timedelta(day_to_go)
|
||||
return date(requested_date.year, requested_date.month, requested_date.day)
|
||||
|
||||
|
||||
def parse_date(string):
|
||||
matches = re.search('\s*([012]?[0-9]|3[01])\s*/\s*(0?[1-9]|1[012])\s*/?(\d{2}|\d{4})?$', string)
|
||||
if matches:
|
||||
year = matches.group(3)
|
||||
if not year:
|
||||
year = date.today().year
|
||||
elif len(year) == 2:
|
||||
year = 2000 + int(year)
|
||||
return date(int(year), int(matches.group(2)), int(matches.group(1)))
|
||||
|
||||
elif string.upper() in WEEK.keys():
|
||||
return get_date_from_day(string)
|
||||
|
||||
elif string.upper() == "TODAY":
|
||||
return date.today()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue