""" @author: Vitor Eller (@VFermat) """ import pandas as pd import numpy as np import datetime class AnbimaHolidays(object): path = r'Holidays\brazilian_holidays_anbima.xlsx' def __init__(self): """This class is responsible for informing the user which dates are considered holidays for ANBIMA in Brazil. """ holidays = [] holidays.append(datetime.datetime(2001, 1, 1)) holidays.append(datetime.datetime(2001, 1, 26)) holidays.append(datetime.datetime(2001, 2, 27)) holidays.append(datetime.datetime(2001, 4, 13)) holidays.append(datetime.datetime(2001, 4, 21)) holidays.append(datetime.datetime(2001, 5, 1)) holidays.append(datetime.datetime(2001, 6, 14)) holidays.append(datetime.datetime(2001, 9, 7)) holidays.append(datetime.datetime(2001, 10, 12)) holidays.append(datetime.datetime(2001, 11, 2)) holidays.append(datetime.datetime(2001, 11, 15)) holidays.append(datetime.datetime(2001, 12, 25)) holidays.append(datetime.datetime(2002, 1, 1)) holidays.append(datetime.datetime(2002, 2, 11)) holidays.append(datetime.datetime(2002, 2, 12)) holidays.append(datetime.datetime(2002, 3, 29)) holidays.append(datetime.datetime(2002, 4, 21)) holidays.append(datetime.datetime(2002, 5, 1)) holidays.append(datetime.datetime(2002, 5, 30)) holidays.append(datetime.datetime(2002, 9, 7)) holidays.append(datetime.datetime(2002, 10, 12)) holidays.append(datetime.datetime(2002, 11, 2)) holidays.append(datetime.datetime(2002, 11, 15)) holidays.append(datetime.datetime(2002, 12, 25)) holidays.append(datetime.datetime(2003, 1, 1)) holidays.append(datetime.datetime(2003, 3, 3)) holidays.append(datetime.datetime(2003, 4, 18)) holidays.append(datetime.datetime(2003, 4, 21)) holidays.append(datetime.datetime(2003, 5, 1)) holidays.append(datetime.datetime(2003, 6, 19)) holidays.append(datetime.datetime(2003, 9, 7)) holidays.append(datetime.datetime(2003, 10, 12)) holidays.append(datetime.datetime(2003, 11, 2)) holidays.append(datetime.datetime(2003, 11, 15)) holidays.append(datetime.datetime(2003, 12, 25)) holidays.append(datetime.datetime(2004, 1, 1)) holidays.append(datetime.datetime(2004, 2, 23)) holidays.append(datetime.datetime(2004, 2, 24)) holidays.append(datetime.datetime(2004, 4, 9)) holidays.append(datetime.datetime(2004, 4, 21)) holidays.append(datetime.datetime(2004, 5, 1)) holidays.append(datetime.datetime(2004, 6, 10)) holidays.append(datetime.datetime(2004, 9, 7)) holidays.append(datetime.datetime(2004, 10, 12)) holidays.append(datetime.datetime(2004, 11, 2)) holidays.append(datetime.datetime(2004, 11, 15)) holidays.append(datetime.datetime(2004, 12, 25)) holidays.append(datetime.datetime(2005, 1, 1)) holidays.append(datetime.datetime(2005, 2, 7)) holidays.append(datetime.datetime(2005, 2, 8)) holidays.append(datetime.datetime(2005, 3, 25)) holidays.append(datetime.datetime(2005, 4, 21)) holidays.append(datetime.datetime(2005, 5, 1)) holidays.append(datetime.datetime(2005, 5, 26)) holidays.append(datetime.datetime(2005, 9, 7)) holidays.append(datetime.datetime(2005, 10, 12)) holidays.append(datetime.datetime(2005, 11, 2)) holidays.append(datetime.datetime(2005, 11, 15)) holidays.append(datetime.datetime(2005, 12, 25)) holidays.append(datetime.datetime(2006, 1, 1)) holidays.append(datetime.datetime(2006, 2, 27)) holidays.append(datetime.datetime(2006, 2, 28)) holidays.append(datetime.datetime(2006, 4, 14)) holidays.append(datetime.datetime(2006, 4, 21)) holidays.append(datetime.datetime(2006, 5, 1)) holidays.append(datetime.datetime(2006, 6, 15)) holidays.append(datetime.datetime(2006, 9, 7)) holidays.append(datetime.datetime(2006, 10, 12)) holidays.append(datetime.datetime(2006, 11, 2)) holidays.append(datetime.datetime(2006, 11, 15)) holidays.append(datetime.datetime(2006, 12, 25)) holidays.append(datetime.datetime(2007, 1, 1)) holidays.append(datetime.datetime(2007, 2, 19)) holidays.append(datetime.datetime(2007, 2, 20)) holidays.append(datetime.datetime(2007, 4, 6)) holidays.append(datetime.datetime(2007, 4, 21)) holidays.append(datetime.datetime(2007, 5, 1)) holidays.append(datetime.datetime(2007, 6, 7)) holidays.append(datetime.datetime(2007, 9, 7)) holidays.append(datetime.datetime(2007, 10, 12)) holidays.append(datetime.datetime(2007, 11, 2)) holidays.append(datetime.datetime(2007, 11, 15)) holidays.append(datetime.datetime(2007, 12, 25)) holidays.append(datetime.datetime(2008, 1, 1)) holidays.append(datetime.datetime(2008, 2, 4)) holidays.append(datetime.datetime(2008, 2, 5)) holidays.append(datetime.datetime(2008, 3, 21)) holidays.append(datetime.datetime(2008, 4, 21)) holidays.append(datetime.datetime(2008, 5, 1)) holidays.append(datetime.datetime(2008, 5, 22)) holidays.append(datetime.datetime(2008, 9, 7)) holidays.append(datetime.datetime(2008, 10, 12)) holidays.append(datetime.datetime(2008, 11, 2)) holidays.append(datetime.datetime(2008, 11, 15)) holidays.append(datetime.datetime(2008, 12, 25)) holidays.append(datetime.datetime(2009, 1, 1)) holidays.append(datetime.datetime(2009, 2, 23)) holidays.append(datetime.datetime(2009, 2, 24)) holidays.append(datetime.datetime(2009, 4, 10)) holidays.append(datetime.datetime(2009, 4, 21)) holidays.append(datetime.datetime(2009, 5, 1)) holidays.append(datetime.datetime(2009, 6, 11)) holidays.append(datetime.datetime(2009, 9, 7)) holidays.append(datetime.datetime(2009, 10, 12)) holidays.append(datetime.datetime(2009, 11, 2)) holidays.append(datetime.datetime(2009, 11, 15)) holidays.append(datetime.datetime(2009, 12, 25)) holidays.append(datetime.datetime(2010, 1, 1)) holidays.append(datetime.datetime(2010, 2, 15)) holidays.append(datetime.datetime(2010, 2, 16)) holidays.append(datetime.datetime(2010, 4, 2)) holidays.append(datetime.datetime(2010, 4, 21)) holidays.append(datetime.datetime(2010, 5, 1)) holidays.append(datetime.datetime(2010, 6, 3)) holidays.append(datetime.datetime(2010, 9, 7)) holidays.append(datetime.datetime(2010, 10, 12)) holidays.append(datetime.datetime(2010, 11, 2)) holidays.append(datetime.datetime(2010, 11, 15)) holidays.append(datetime.datetime(2010, 12, 25)) holidays.append(datetime.datetime(2011, 1, 1)) holidays.append(datetime.datetime(2011, 3, 7)) holidays.append(datetime.datetime(2011, 3, 8)) holidays.append(datetime.datetime(2011, 4, 21)) holidays.append(datetime.datetime(2011, 4, 22)) holidays.append(datetime.datetime(2011, 5, 1)) holidays.append(datetime.datetime(2011, 6, 23)) holidays.append(datetime.datetime(2011, 9, 7)) holidays.append(datetime.datetime(2011, 10, 12)) holidays.append(datetime.datetime(2011, 11, 2)) holidays.append(datetime.datetime(2011, 11, 15)) holidays.append(datetime.datetime(2011, 12, 25)) holidays.append(datetime.datetime(2012, 1, 1)) holidays.append(datetime.datetime(2012, 2, 20)) holidays.append(datetime.datetime(2012, 2, 21)) holidays.append(datetime.datetime(2012, 4, 6)) holidays.append(datetime.datetime(2012, 4, 21)) holidays.append(datetime.datetime(2012, 5, 1)) holidays.append(datetime.datetime(2012, 6, 7)) holidays.append(datetime.datetime(2012, 9, 7)) holidays.append(datetime.datetime(2012, 10, 12)) holidays.append(datetime.datetime(2012, 11, 2)) holidays.append(datetime.datetime(2012, 11, 15)) holidays.append(datetime.datetime(2012, 12, 25)) holidays.append(datetime.datetime(2013, 1, 1)) holidays.append(datetime.datetime(2013, 2, 11)) holidays.append(datetime.datetime(2013, 2, 12)) holidays.append(datetime.datetime(2013, 3, 29)) holidays.append(datetime.datetime(2013, 4, 21)) holidays.append(datetime.datetime(2013, 5, 1)) holidays.append(datetime.datetime(2013, 5, 30)) holidays.append(datetime.datetime(2013, 9, 7)) holidays.append(datetime.datetime(2013, 10, 12)) holidays.append(datetime.datetime(2013, 11, 2)) holidays.append(datetime.datetime(2013, 11, 15)) holidays.append(datetime.datetime(2013, 12, 25)) holidays.append(datetime.datetime(2014, 1, 1)) holidays.append(datetime.datetime(2014, 3, 3)) holidays.append(datetime.datetime(2014, 3, 4)) holidays.append(datetime.datetime(2014, 4, 18)) holidays.append(datetime.datetime(2014, 4, 21)) holidays.append(datetime.datetime(2014, 5, 1)) holidays.append(datetime.datetime(2014, 6, 19)) holidays.append(datetime.datetime(2014, 9, 7)) holidays.append(datetime.datetime(2014, 10, 12)) holidays.append(datetime.datetime(2014, 11, 2)) holidays.append(datetime.datetime(2014, 11, 15)) holidays.append(datetime.datetime(2014, 12, 25)) holidays.append(datetime.datetime(2015, 1, 1)) holidays.append(datetime.datetime(2015, 2, 16)) holidays.append(datetime.datetime(2015, 2, 17)) holidays.append(datetime.datetime(2015, 4, 3)) holidays.append(datetime.datetime(2015, 4, 21)) holidays.append(datetime.datetime(2015, 5, 1)) holidays.append(datetime.datetime(2015, 6, 4)) holidays.append(datetime.datetime(2015, 9, 7)) holidays.append(datetime.datetime(2015, 10, 12)) holidays.append(datetime.datetime(2015, 11, 2)) holidays.append(datetime.datetime(2015, 11, 15)) holidays.append(datetime.datetime(2015, 12, 25)) holidays.append(datetime.datetime(2016, 1, 1)) holidays.append(datetime.datetime(2016, 2, 8)) holidays.append(datetime.datetime(2016, 2, 9)) holidays.append(datetime.datetime(2016, 3, 25)) holidays.append(datetime.datetime(2016, 4, 21)) holidays.append(datetime.datetime(2016, 5, 1)) holidays.append(datetime.datetime(2016, 5, 26)) holidays.append(datetime.datetime(2016, 9, 7)) holidays.append(datetime.datetime(2016, 10, 12)) holidays.append(datetime.datetime(2016, 11, 2)) holidays.append(datetime.datetime(2016, 11, 15)) holidays.append(datetime.datetime(2016, 12, 25)) holidays.append(datetime.datetime(2017, 1, 1)) holidays.append(datetime.datetime(2017, 2, 27)) holidays.append(datetime.datetime(2017, 2, 28)) holidays.append(datetime.datetime(2017, 4, 14)) holidays.append(datetime.datetime(2017, 4, 21)) holidays.append(datetime.datetime(2017, 5, 1)) holidays.append(datetime.datetime(2017, 6, 15)) holidays.append(datetime.datetime(2017, 9, 7)) holidays.append(datetime.datetime(2017, 10, 12)) holidays.append(datetime.datetime(2017, 11, 2)) holidays.append(datetime.datetime(2017, 11, 15)) holidays.append(datetime.datetime(2017, 12, 25)) holidays.append(datetime.datetime(2018, 1, 1)) holidays.append(datetime.datetime(2018, 2, 12)) holidays.append(datetime.datetime(2018, 2, 13)) holidays.append(datetime.datetime(2018, 3, 30)) holidays.append(datetime.datetime(2018, 4, 21)) holidays.append(datetime.datetime(2018, 5, 1)) holidays.append(datetime.datetime(2018, 5, 31)) holidays.append(datetime.datetime(2018, 9, 7)) holidays.append(datetime.datetime(2018, 10, 12)) holidays.append(datetime.datetime(2018, 11, 2)) holidays.append(datetime.datetime(2018, 11, 15)) holidays.append(datetime.datetime(2018, 12, 25)) holidays.append(datetime.datetime(2019, 1, 1)) holidays.append(datetime.datetime(2019, 3, 4)) holidays.append(datetime.datetime(2019, 3, 5)) holidays.append(datetime.datetime(2019, 4, 19)) holidays.append(datetime.datetime(2019, 4, 21)) holidays.append(datetime.datetime(2019, 5, 1)) holidays.append(datetime.datetime(2019, 6, 20)) holidays.append(datetime.datetime(2019, 9, 7)) holidays.append(datetime.datetime(2019, 10, 12)) holidays.append(datetime.datetime(2019, 11, 2)) holidays.append(datetime.datetime(2019, 11, 15)) holidays.append(datetime.datetime(2019, 12, 25)) holidays.append(datetime.datetime(2020, 1, 1)) holidays.append(datetime.datetime(2020, 2, 24)) holidays.append(datetime.datetime(2020, 2, 25)) holidays.append(datetime.datetime(2020, 4, 10)) holidays.append(datetime.datetime(2020, 4, 21)) holidays.append(datetime.datetime(2020, 5, 1)) holidays.append(datetime.datetime(2020, 6, 11)) holidays.append(datetime.datetime(2020, 9, 7)) holidays.append(datetime.datetime(2020, 10, 12)) holidays.append(datetime.datetime(2020, 11, 2)) holidays.append(datetime.datetime(2020, 11, 15)) holidays.append(datetime.datetime(2020, 12, 25)) holidays.append(datetime.datetime(2021, 1, 1)) holidays.append(datetime.datetime(2021, 2, 15)) holidays.append(datetime.datetime(2021, 2, 16)) holidays.append(datetime.datetime(2021, 4, 2)) holidays.append(datetime.datetime(2021, 4, 21)) holidays.append(datetime.datetime(2021, 5, 1)) holidays.append(datetime.datetime(2021, 6, 3)) holidays.append(datetime.datetime(2021, 9, 7)) holidays.append(datetime.datetime(2021, 10, 12)) holidays.append(datetime.datetime(2021, 11, 2)) holidays.append(datetime.datetime(2021, 11, 15)) holidays.append(datetime.datetime(2021, 12, 25)) holidays.append(datetime.datetime(2022, 1, 1)) holidays.append(datetime.datetime(2022, 2, 28)) holidays.append(datetime.datetime(2022, 3, 1)) holidays.append(datetime.datetime(2022, 4, 15)) holidays.append(datetime.datetime(2022, 4, 21)) holidays.append(datetime.datetime(2022, 5, 1)) holidays.append(datetime.datetime(2022, 6, 16)) holidays.append(datetime.datetime(2022, 9, 7)) holidays.append(datetime.datetime(2022, 10, 12)) holidays.append(datetime.datetime(2022, 11, 2)) holidays.append(datetime.datetime(2022, 11, 15)) holidays.append(datetime.datetime(2022, 12, 25)) holidays.append(datetime.datetime(2023, 1, 1)) holidays.append(datetime.datetime(2023, 2, 20)) holidays.append(datetime.datetime(2023, 2, 21)) holidays.append(datetime.datetime(2023, 4, 7)) holidays.append(datetime.datetime(2023, 4, 21)) holidays.append(datetime.datetime(2023, 5, 1)) holidays.append(datetime.datetime(2023, 6, 8)) holidays.append(datetime.datetime(2023, 9, 7)) holidays.append(datetime.datetime(2023, 10, 12)) holidays.append(datetime.datetime(2023, 11, 2)) holidays.append(datetime.datetime(2023, 11, 15)) holidays.append(datetime.datetime(2023, 12, 25)) holidays.append(datetime.datetime(2024, 1, 1)) holidays.append(datetime.datetime(2024, 2, 12)) holidays.append(datetime.datetime(2024, 2, 13)) holidays.append(datetime.datetime(2024, 3, 29)) holidays.append(datetime.datetime(2024, 4, 21)) holidays.append(datetime.datetime(2024, 5, 1)) holidays.append(datetime.datetime(2024, 5, 30)) holidays.append(datetime.datetime(2024, 9, 7)) holidays.append(datetime.datetime(2024, 10, 12)) holidays.append(datetime.datetime(2024, 11, 2)) holidays.append(datetime.datetime(2024, 11, 15)) holidays.append(datetime.datetime(2024, 12, 25)) holidays.append(datetime.datetime(2025, 1, 1)) holidays.append(datetime.datetime(2025, 3, 3)) holidays.append(datetime.datetime(2025, 3, 4)) holidays.append(datetime.datetime(2025, 4, 18)) holidays.append(datetime.datetime(2025, 4, 21)) holidays.append(datetime.datetime(2025, 5, 1)) holidays.append(datetime.datetime(2025, 6, 19)) holidays.append(datetime.datetime(2025, 9, 7)) holidays.append(datetime.datetime(2025, 10, 12)) holidays.append(datetime.datetime(2025, 11, 2)) holidays.append(datetime.datetime(2025, 11, 15)) holidays.append(datetime.datetime(2025, 12, 25)) holidays.append(datetime.datetime(2026, 1, 1)) holidays.append(datetime.datetime(2026, 2, 16)) holidays.append(datetime.datetime(2026, 2, 17)) holidays.append(datetime.datetime(2026, 4, 3)) holidays.append(datetime.datetime(2026, 4, 21)) holidays.append(datetime.datetime(2026, 5, 1)) holidays.append(datetime.datetime(2026, 6, 4)) holidays.append(datetime.datetime(2026, 9, 7)) holidays.append(datetime.datetime(2026, 10, 12)) holidays.append(datetime.datetime(2026, 11, 2)) holidays.append(datetime.datetime(2026, 11, 15)) holidays.append(datetime.datetime(2026, 12, 25)) holidays.append(datetime.datetime(2027, 1, 1)) holidays.append(datetime.datetime(2027, 2, 8)) holidays.append(datetime.datetime(2027, 2, 9)) holidays.append(datetime.datetime(2027, 3, 26)) holidays.append(datetime.datetime(2027, 4, 21)) holidays.append(datetime.datetime(2027, 5, 1)) holidays.append(datetime.datetime(2027, 5, 27)) holidays.append(datetime.datetime(2027, 9, 7)) holidays.append(datetime.datetime(2027, 10, 12)) holidays.append(datetime.datetime(2027, 11, 2)) holidays.append(datetime.datetime(2027, 11, 15)) holidays.append(datetime.datetime(2027, 12, 25)) holidays.append(datetime.datetime(2028, 1, 1)) holidays.append(datetime.datetime(2028, 2, 28)) holidays.append(datetime.datetime(2028, 2, 29)) holidays.append(datetime.datetime(2028, 4, 14)) holidays.append(datetime.datetime(2028, 4, 21)) holidays.append(datetime.datetime(2028, 5, 1)) holidays.append(datetime.datetime(2028, 6, 15)) holidays.append(datetime.datetime(2028, 9, 7)) holidays.append(datetime.datetime(2028, 10, 12)) holidays.append(datetime.datetime(2028, 11, 2)) holidays.append(datetime.datetime(2028, 11, 15)) holidays.append(datetime.datetime(2028, 12, 25)) holidays.append(datetime.datetime(2029, 1, 1)) holidays.append(datetime.datetime(2029, 2, 12)) holidays.append(datetime.datetime(2029, 2, 13)) holidays.append(datetime.datetime(2029, 3, 30)) holidays.append(datetime.datetime(2029, 4, 21)) holidays.append(datetime.datetime(2029, 5, 1)) holidays.append(datetime.datetime(2029, 5, 31)) holidays.append(datetime.datetime(2029, 9, 7)) holidays.append(datetime.datetime(2029, 10, 12)) holidays.append(datetime.datetime(2029, 11, 2)) holidays.append(datetime.datetime(2029, 11, 15)) holidays.append(datetime.datetime(2029, 12, 25)) holidays.append(datetime.datetime(2030, 1, 1)) holidays.append(datetime.datetime(2030, 3, 4)) holidays.append(datetime.datetime(2030, 3, 5)) holidays.append(datetime.datetime(2030, 4, 19)) holidays.append(datetime.datetime(2030, 4, 21)) holidays.append(datetime.datetime(2030, 5, 1)) holidays.append(datetime.datetime(2030, 6, 20)) holidays.append(datetime.datetime(2030, 9, 7)) holidays.append(datetime.datetime(2030, 10, 12)) holidays.append(datetime.datetime(2030, 11, 2)) holidays.append(datetime.datetime(2030, 11, 15)) holidays.append(datetime.datetime(2030, 12, 25)) holidays.append(datetime.datetime(2031, 1, 1)) self.holidays = np.array(holidays).astype('datetime64[D]') def get_holidays(self): """This function returns a set containing ANBIMA's holidays from 2001 to 2070. """ return self.holidays def check_date(self, date): """This function checks if a specific date is an ANBIMA holiday or not Arguments: date : datetime object A Datetime Object which represents the date the user wants to check. """ if type(date) is datetime.day: y = date.year m = date.month d = date.day date = datetime.datetime(y, m, d) elif type(date) is not datetime.datetime: raise TypeError('Please input a Datetime object.') if date in self.holidays: return True return False