La biblioteca Python Holidays es una biblioteca eficiente para determinar si una fecha específica es un día festivo de la manera más rápida y flexible posible. Para cualquier país, uno puede saber si ese día es feriado o no. Solo se pueden detectar días fijos (públicos) festivos como Navidad, Año Nuevo, etc.
Instalación:
pip install holidays
Sintaxis:
vacaciones.HolidayBase(años=[], expandir=Verdadero, observado=Verdadero, prov=Ninguno, estado=Ninguno)
Parámetros:
years : una lista iterable de enteros que especifica los años que el objeto Holiday debe generar previamente. Esto generalmente solo se usaría si la configuración se expande a False. (Defecto[])
expand : un valor booleano que especifica si se agregan o no vacaciones en años nuevos al objeto de vacaciones. (Predeterminado: Verdadero)
observado : un valor booleano que, cuando se establece en True, incluirá el día observado de un feriado que cae en fin de semana, cuando corresponda. (Predeterminado: Verdadero)
prov : una string que especifica una provincia que tiene días festivos legales únicos. (Predeterminado: Australia=’ACT’, Canadá=’ON’, Nueva Zelanda=Ninguno)
state : una string que especifica un estado que tiene días festivos legales únicos. (Predeterminado: Estados Unidos=Ninguno)
Métodos:
- get(key, default=None): Devuelve una string que contiene el nombre de las vacaciones en la clave de fecha, que puede ser de tipo fecha, fechahora, string, unicode, bytes, entero o flotante. Si varios días festivos caen en la misma fecha, los nombres se separarán con comas.
- get_list(key): Igual que get excepto que devuelve una lista de nombres de días festivos en lugar de una string separada por comas.
- pop(key, default=None): Igual que
get
, excepto que la clave se elimina de la actualización/añadir del objeto de vacaciones. Acepta el diccionario de pares {fecha: nombre}, una lista de fechas o incluso objetos singulares de fecha/string/marca de tiempo y los agrega a la lista de días festivos.
Código n.° 1: para un país y un año en particular, se muestran todos los días festivos.
from datetime import date import holidays # Select country uk_holidays = holidays.UnitedKingdom() # Print all the holidays in UnitedKingdom in year 2018 for ptr in holidays.UnitedKingdom(years = 2018).items(): print(ptr)
Producción:
(datetime.date(2018, 1, 1), "New Year's Day") (datetime.date(2018, 1, 2), 'New Year Holiday [Scotland]') (datetime.date(2018, 3, 17), "St. Patrick's Day [Northern Ireland]") (datetime.date(2018, 3, 19), "St. Patrick's Day [Northern Ireland] (Observed)") (datetime.date(2018, 3, 30), 'Good Friday') (datetime.date(2018, 4, 2), 'Easter Monday [England, Wales, Northern Ireland]') (datetime.date(2018, 5, 7), 'May Day') (datetime.date(2018, 5, 28), 'Spring Bank Holiday') (datetime.date(2018, 7, 12), 'Battle of the Boyne [Northern Ireland]') (datetime.date(2018, 8, 6), 'Summer Bank Holiday [Scotland]') (datetime.date(2018, 8, 27), 'Late Summer Bank Holiday [England, Wales, Northern Ireland]') (datetime.date(2018, 11, 30), "St. Andrew's Day [Scotland]") (datetime.date(2018, 12, 25), 'Christmas Day') (datetime.date(2018, 12, 26), 'Boxing Day')
Código #2: Verifique si una fecha dada es feriado o no
from datetime import date import holidays # Select country uk_holidays = holidays.UnitedKingdom() # If it is a holidays then it returns True else False print('01-01-2018' in uk_holidays) print('02-01-2018' in uk_holidays) # What holidays is it? print(uk_holidays.get('01-01-2018')) print(uk_holidays.get('02-01-2018'))
Producción:
True False New Year's Day None
Código #3: Días festivos en América del Norte
from datetime import date import holidays # Combining Countries north_america = holidays.CA() + holidays.US() + holidays.MX() # Output list of countries combined print(north_america.country) print(north_america.get('07-01-2018')) print(north_america.get('07-04-2018'))
Producción:
['CA', 'US', 'MX'] Canada Day Independence Day
Lista de países incluidos en Holiday Library –
País | abreviar | Provincias/Estados Disponibles |
---|---|---|
Argentina | Arkansas | Ninguna |
Australia | Australia | prov = ACT (predeterminado), NSW, NT, QLD, SA, TAS, VIC, WA |
Austria | A | prueba = B, K, N, O, S, ST, T, V, W (predeterminado) |
Bélgica | SER | Ninguna |
Canadá | California | prov = AB, BC, MB, NB, NL, NS, NT, NU, ON (predeterminado), PE, QC, SK, YU |
Colombia | CO | Ninguna |
checo | CZ | Ninguna |
Dinamarca | no sé | Ninguna |
Inglaterra | Ninguna | |
Banco central europeo | BCE, TAR | Liquidación bruta transeuropea automatizada en tiempo real (TARGET2) |
Finlandia | FI | Ninguna |
Francia | FRA | Métropole (predeterminado), Alsace-Moselle, Guadalupe, Guyane, Martinica, Mayotte, Nouvelle-Calédonie, La Réunion, Polynésie Française, Saint-Barthélémy, Saint-Martin, Wallis-et-Futuna |
Alemania | Delaware | BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH |
Hungría | HU | Ninguna |
Irlanda | ES DECIR | |
Isla del hombre | Ninguna | |
Italia | ESO | prov = MI, RM |
Japón | JP | Ninguna |
México | MX | Ninguna |
Países Bajos | Países Bajos | Ninguna |
Nueva Zelanda | Nueva Zelanda | prueba = NTL, AUK, TKI, HKB, WGN, MBH, NSN, CAN, STC, WTL, OTA, STL, CIT |
Irlanda del Norte | Ninguna | |
Noruega | NO | Ninguna |
Polaco | ES | Ninguna |
Portugal | PT | Ninguna |
PortugalExt | PTE | Portugal más días extendidos que la mayoría de la gente tiene libre |
Escocia | Ninguna | |
Eslovenia | SI | Ninguna |
Eslovaquia | SK | Ninguna |
Sudáfrica | ES | Ninguna |
España | ES | prov = AND, ARG, AST, CAN, CAM, CAL, CAT, CVA, EXT, GAL, IBA, ICA, MAD, MUR, NAV, PVA, RIO |
Suecia | SE | Ninguna |
Suiza | CH | prov = AG, AR, AI, BL, BS, BE, FR, GE, GL, GR, JU, LU, NE, NW, OW, SG, SH, SZ, SO, TG, TI, UR, VD, VS, ZG, ZH |
Reino Unido | Reino Unido | Ninguna |
Estados Unidos | A NOSOTROS | estado = AL, AK, AS, AZ, AR, CA, CO, CT, DE, DC, FL, GA, GU, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MH, MA, MI, FM, MN, MS, MO, MT, NE, NV, NH, NJ, NM, NY, NC, ND, MP, OH, OK, OR, PW, PA, PR, RI, SC, SD, TN, TX, UT, VT, VA, VI, WA, WV, WI, WY |
Gales | Ninguna |
En esta Biblioteca faltan muchos países. Entonces, podemos hacer nuestros propios días festivos personalizados.
Código n.º 4: Adición de días festivos personalizados para la India
from datetime import date import holidays in_holidays = holidays.HolidayBase() # Let's check our republic day print('26-01-2019' in in_holidays) # Add Holiday without description in_holidays.append('26-01-2019') # Let's verify print('26-01-2019' in in_holidays) # True # Let's Check Description print(in_holidays.get('26-01-2019')) # Add Holiday with description in_holidays.append({'26-01-2019':'Republic Day India'}) print(in_holidays.get('26-01-2019')) # Add list of Dates Together in_holidays.append(['02-10-2018', '15-08-2018']) print('15-08-2018' in in_holidays) # True print('02-10-2018' in in_holidays) # True # a single date item in_holidays.append(date(2018, 12, 25)) print('25-12-2018' in in_holidays) # True
Producción:
False True Holiday Republic Day India, Holiday True True True
Referencia: https://pypi.org/project/holidays/
Publicación traducida automáticamente
Artículo escrito por shaurya uppal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA