diff --git a/dateHelper.py b/dateHelper.py index 705a75c..5c4721c 100644 --- a/dateHelper.py +++ b/dateHelper.py @@ -1,4 +1,6 @@ from datetime import date, datetime, timedelta, time +import re + # Monday - 0 # Tuesday - 1 @@ -30,6 +32,8 @@ def convert_UTC_to_timestamp(date): def get_day_of_week_number(day): + if day == 'dziś' or day == 'dzisiaj': + return get_current_day_of_week() if day == 'poniedziałek': return 0 elif day == 'wtorek': @@ -72,8 +76,33 @@ def get_datetime_from_day(day, hours, minutes): date = get_current_date() + timedelta(days=(7 - abs(current_day_of_week-input_date_of_week))) return datetime.combine(date, input_time) - # print(get_current_datetime('niedziela', 22, 21)) -print(get_datetime_from_day('niedziela', 22, 21)) -print(get_datetime_from_day('niedziela', 18, 21)) -print(get_datetime_from_day('poniedziałek', 18, 21)) -print(get_datetime_from_day('wtorek', 18, 21)) + +def get_date(date, time): + # parsowanie czasu + if re.match(r'^[0-2][0-9]$', time): + hours = int(time) + minutes = 00 + elif re.match(r'^[0-2][0-9].[0-9][0-9]$', time): + m = re.search(r'^([0-2][0-9]).([0-9][0-9])$', time) + hours = int(m.group(1)) + minutes = int(m.group(2)) + + +# TODO jeżeli jeszcze jakieś dziwne formaty to obsłużyć przypadki + if re.match(r'^[0-3][0-9]\.[0-1][0-9]\.20[0-9]{2}$', date): + date = datetime.strptime(date, '%d.%m.%Y').date() + return datetime.combine(date, get_time_from_hours_minutes(hours, minutes)) + else: + return get_datetime_from_day(date, hours, minutes) + + +# Tests +# print(get_datetime_from_day('niedziela', 22, 21)) +# print(get_datetime_from_day('niedziela', 18, 21)) +# print(get_datetime_from_day('poniedziałek', 18, 21)) +# print(get_datetime_from_day('wtorek', 18, 21)) + +# print(get_date("07.06.2021", "12:00")) +# print(get_date("sobota", "00:00")) +# print(get_date("wtorek", "12:00")) +# print(get_date("12.06.2021", "23"))