vacanza/python-holidays

Lacking some holidays on Brazillian calendar

th3worst4 opened this issue · 3 comments

Some holidays as: Corpus Christi, Quarta-feira de Cinzas, Sexta-feira de Carnaval e Páscoa are missing. I believe it's because they're non fixed day holidays.

I've written some code that could fix it:

def get_holidays():
    br_holidays = holidays.country_holidays("BR", years=begin.year)
    for date, holiday in br_holidays.items():
        if holiday == "Sexta-feira Santa":
            easter = date + datetime.timedelta(days=2)

    br_holidays.update({
        easter : "Páscoa",
    })

    i = 0
    while (easter - datetime.timedelta(days=40 + i)).weekday() != 2:
        i+=1
    
    br_holidays.update({
        easter - datetime.timedelta(days=40 + i) : "Quarta-feira de Cinzas",
        easter - datetime.timedelta(days=40 + i + 5) : "Sexta-feira de Carnaval",
    })

    i = 0
    while(easter + datetime.timedelta(days=60 + i)).weekday() != 3:
        i+=1
    
    br_holidays.update({
        easter + datetime.timedelta(days=60 + i) : "Corpus Christi"
    })

    return br_holidays

The "Sexta-feira Santa" holiday can be found on the default package dictionary, what I did was just some research on how to calculate the other holidays based on "Páscoa" (Easter) day

The performance of my code may be a crap, but I wanted to create as less variables as possible

Hi @th3worst4,

"Corpus Christi" is classified as OPTIONAL holiday in Python Holidays. You can find categories usage examples here.

For "Páscoa" (and rest of holidays), the reasons for their absence are described here. If you have any sources confirming the status of these holidays, please share them with us.