X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=dateparse%2Fdateparse_utils.py;fp=dateparse%2Fdateparse_utils.py;h=ee2bbd9f6a9ef47519815d1747bde6124eb591af;hb=a778719a55da82f5a3d1ca5cecd9041530d4d6e9;hp=bd0d491f17e55fc4eef1894cfbe8a544b88787f2;hpb=1340aa96d7cc1cb62e83ce52f29be680d7ce7895;p=python_utils.git diff --git a/dateparse/dateparse_utils.py b/dateparse/dateparse_utils.py index bd0d491..ee2bbd9 100755 --- a/dateparse/dateparse_utils.py +++ b/dateparse/dateparse_utils.py @@ -672,10 +672,10 @@ class DateParser(dateparse_utilsListener): del self.context['dow'] self.context['delta_unit'] = dow - # For the nth Fooday in Month, start at the 1st of the - # month and count ahead N Foodays. For the last Fooday in - # Month, start at the last of the month and count back one - # Fooday. + # For the nth Fooday in Month, start at the last day of + # the previous month count ahead N Foodays. For the last + # Fooday in Month, start at the last of the month and + # count back one Fooday. if n == -1: month += 1 if month == 13: @@ -684,17 +684,16 @@ class DateParser(dateparse_utilsListener): tmp_date = datetime.date(year=year, month=month, day=1) tmp_date = tmp_date - datetime.timedelta(days=1) - self.context['year'] = tmp_date.year - self.context['month'] = tmp_date.month - self.context['day'] = tmp_date.day - # The delta adjustment code can handle the case where # the last day of the month is the day we're looking # for already. else: - self.context['year'] = year - self.context['month'] = month - self.context['day'] = 1 + tmp_date = datetime.date(year=year, month=month, day=1) + tmp_date = tmp_date - datetime.timedelta(days=1) + + self.context['year'] = tmp_date.year + self.context['month'] = tmp_date.month + self.context['day'] = tmp_date.day self.main_type = DateParser.PARSE_TYPE_BASE_AND_OFFSET_EXPR except Exception as e: raise ParseException(f'Invalid nthWeekday expression: {ctx.getText()}') from e