rickar / cal

Go (golang) calendar library for dealing with holidays and work days
BSD 3-Clause "New" or "Revised" License
347 stars 121 forks source link

"Bridge" holidays #67

Open mblasi opened 3 years ago

mblasi commented 3 years ago

Hello, here in Argentina, we have a rule for promote turism, which adds Friday as holiday when the real one is Thursday, and adds Monday when it is Tuesday. Is there any way to represent it with the new v2 api?

Thanks!

rickar commented 3 years ago

There's no built-in way to do that. You should be able to create a custom HolidayFn that returns Friday or Tuesday after checking if the original holiday is on Thursday or Tuesday.

mblasi commented 3 years ago

Thank you @rickar! If I understand correctly, that HolidayFn would swap the "Thursday" with "Friday", but in my case, we need to add Friday, and finally should be two holidays: Thursday and Friday.

rickar commented 3 years ago

Right. Each Holiday definition can only return one day per year so you would need to create something like TruthDay and SecondTruthDay. TruthDay would return the normal holiday every year like you currently have it with CalcDayOfMonth and SecondTruthDay would use a custom CalcBridgeDay that returns the extra day if it applies or zero time if not.

mblasi commented 3 years ago

I see. So I should define this "second" day for each actual holiday...

El sáb., 29 de mayo de 2021 10:58, rickar @.***> escribió:

Right. Each Holiday definition can only return one day per year so you would need to create something like TruthDay and SecondTruthDay. TruthDay would return the normal holiday every year like you currently have it with CalcDayOfMonth and SecondTruthDay would use a custom CalcBridgeDay that returns the extra day if it applies or zero time if not.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/rickar/cal/issues/67#issuecomment-850838021, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAJZGPJ2X6G7G4GPQQB5ITTQDXHLANCNFSM45LWNVIQ .