Skip to content

Commit

Permalink
Argentina - Fix Weekday shift logic
Browse files Browse the repository at this point in the history
  • Loading branch information
tinohager committed Sep 25, 2024
1 parent 9addb90 commit 13c1792
Showing 1 changed file with 24 additions and 11 deletions.
35 changes: 24 additions & 11 deletions src/Nager.Date/HolidayProviders/ArgentinaHolidayProvider.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,15 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
{
var easterSunday = this._catholicProvider.EasterSunday(year);

var thirdMondayInAugust = DateHelper.FindDay(year, Month.August, DayOfWeek.Monday, Occurrence.Third);
var secondMondayInOctober = DateHelper.FindDay(year, Month.October, DayOfWeek.Monday, Occurrence.Second);
var mondayObservedRuleSet = new ObservedRuleSet
{
Tuesday = date => date.AddDays(-1),
Wednesday = date => date.AddDays(-2),
Thursday = date => date.AddDays(4),
Friday = date => date.AddDays(3),
Saturday = date => date.AddDays(2),
Sunday = date => date.AddDays(1),
};

var holidaySpecifications = new List<HolidaySpecification>
{
Expand All @@ -45,14 +52,16 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
Date = easterSunday.AddDays(-48),
EnglishName = "Carnival",
LocalName = "Carnaval",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Date = easterSunday.AddDays(-47),
EnglishName = "Carnival",
LocalName = "Carnaval",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Expand Down Expand Up @@ -87,7 +96,8 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
Date = new DateTime(year, 6, 17),
EnglishName = "Anniversary of the Passing of General Martín Miguel de Güemes",
LocalName = "Paso a la Inmortalidad del General Martín Miguel de Güemes",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Expand All @@ -105,24 +115,27 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
},
new HolidaySpecification
{
Date = thirdMondayInAugust,
Date = new DateTime(year, 8, 17),
EnglishName = "General José de San Martín Memorial Day",
LocalName = "Paso a la Inmortalidad del General José de San Martín",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Date = secondMondayInOctober,
Date = new DateTime(year, 10, 12),
EnglishName = "Day of Respect for Cultural Diversity",
LocalName = "Día del Respeto a la Diversidad Cultural",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Date = new DateTime(year, 11, 20),
EnglishName = "National Sovereignty Day",
LocalName = "Día de la Soberanía Nacional",
HolidayTypes = HolidayTypes.Public
HolidayTypes = HolidayTypes.Public,
ObservedRuleSet = mondayObservedRuleSet
},
new HolidaySpecification
{
Expand All @@ -138,7 +151,7 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
LocalName = "Navidad",
HolidayTypes = HolidayTypes.Public
},
this._catholicProvider.GoodFriday("Viernes Santo", year)
this._catholicProvider.GoodFriday("Viernes Santo", year, mondayObservedRuleSet)
};

return holidaySpecifications;
Expand Down

0 comments on commit 13c1792

Please sign in to comment.