Qual è il modo più semplice per determinare se una data è un giorno festivo negli Stati Uniti in Python? Sembra che ci siano vari calendari e webservices vacanze per vari paesi di quotazione, ma non ho trovato nulla di specifico per le banche negli Stati UnitiRilevamento di una festività negli Stati Uniti
risposta
Alcune osservazioni di carattere generale:
Non penso che @ AST4 davvero significa "giorno n-esimo della settimana ennesima di algoritmo del nono mese ". La nozione di "ennesima settimana all'ennesimo mese" è un rompicapo mentale (come il "calendario ISO"). Non ho mai visto una vacanza definita in termini di "ennesima settimana". Martin Luther King è un esempio del tipo "giorno della settimana Ennesimo nel mese" di vacanza:
MONDAY, ...., SATURDAY = range(7)
JAN, ....., DEC = range(1, 12)
Holiday("Martin L King's Birthday", type='floating',
ordinal=3, weekday=MON, month=JAN)
Holiday("Memorial Day", type='floating',
ordinal=-1, weekday=MON, month=MAY)
Gli Stati Uniti non dispone vacanze di Pasqua-correlati. Definizione non è difficile:
Holiday("Good Friday", type='moveable',
base='gregorian_easter', delta_days=-2)
Holiday("Easter Monday", etc, delta_days=1)
# Some states in Australia used to have Easter Tuesday (no kidding)
Holiday("Easter Tuesday", etc, delta_days=2)
L'idea 'base' può essere utilizzato per soddisfare il nuovo anno lunare, infatti ogni tipo di vacanza che è un offset da una data di base che ha bisogno di una procedura speciale per calcolarlo.
Le cosiddette vacanze "statici" non sono fissi quando la data "fisso" è un Sabato o Domenica e possono anche scomparire (senza giorno di assenza dal lavoro alternative):
# Americans will get a day off on Friday 31 Dec 2010
# because 1 Jan 2011 is a Saturday.
Holiday("New Year's Day", type='fixed',
day=1, month=JAN, sat_adj=-1, sun_adj=????)
# Australia observes ANZAC Day on the day, with no day off
# if the fixed date falls on a weekend.
Holiday("ANZAC Day", type='fixed', day=25, month=APR, sat_adj=0, sun_adj=0)
# Two consecutive "fixed" holidays is OK; three would need re-thinking.
# Australia again:
Holiday("Christmas Day", type='fixed', day=25, month=DEC, sat_adj=2, sun_adj=1)
Holiday("Boxing Day", type='fixed', day=26, month=DEC, sat_adj=2, sun_adj=2)
Sono sicuro che ci sono modi di specificare le festività che non sono soddisfatte dalle regole di cui sopra ... qualsiasi notizia di questo tipo è la benvenuta.
Cosa è questa classe di vacanze che stai usando? –
@Gringo Suave: È solo una notazione per mostrare la maggior parte dei modi strani che le vacanze possono essere definite. –
Assicurarsi data certa = uno di questi:!
Questi si applicano all'ambasciata degli Stati Uniti, ma possono variare a seconda della banca: ad esempio, la mia banca è aperta a Columbus Day, che non è una festa molto popolare in California. –
@Alex Martelli: la tua banca potrebbe essere aperta, ma l'alimentazione è chiusa, quindi la rete ACH non scorre su Columbus Day. È trattato come un sabato. –
I In realtà ha lavorato di recente su un problema molto simile a questo. Le festività statiche sono piuttosto banali da generare (ad es. Capodanno - 31 dicembre (ciclo di anni)). Ci sono algoritmi ben definiti là fuori per generare le vacanze fluttuanti. Essenzialmente hai una data di inizio (ad esempio, il 1 ° gennaio 1900) e lavori da lì. Ciò che ho finito per implementare è stato un ennesimo giorno dell'ennesimo algoritmo dell'undicesima settimana (ad esempio MLK day = 3rd Monday of January). La Pasqua è un po 'diversa da fare, ma ancora una volta ci sono algoritmi ben definiti per quello già là fuori (il Venerdì Santo è banale dopo aver gennaio).
C'è un libro abbastanza decente su questo là fuori si consiglia di controllare: Calendrical Calculations
Penso che tu intenda dire "Il venerdì santo è banale dopo che hai Pasqua", giusto? Detto questo, né il Venerdì Santo né il Lunedì di Pasqua sono normalmente festivi negli Stati Uniti, e la Pasqua è ovviamente sempre di domenica e quindi mai un giorno lavorativo comunque. –
Sì, scusa, stavo scrivendo troppo in fretta. – ast4
Alcuni chiarimenti (grazie a John Machin per indicarlo): Per n ° giorno intendo: lunedì = 1, martedì = 2, mercoledì = 3, giovedì = 4, venerdì = 5, sabato = 6, domenica = 7 – ast4
Il pacchetto Pandas fornisce una soluzione conveniente per questo:
from pandas.tseries.holiday import USFederalHolidayCalendar
cal = USFederalHolidayCalendar()
holidays = cal.holidays(start='2014-01-01', end='2014-12-31').to_pydatetime()
if datetime.datetime(2014,01,01) in holidays:
print True
- 1. Seleziona solo fusi orari Stati Uniti
- 2. Centro predefinito su Stati Uniti?
- 3. La migliore libreria o database liberi per determinare se una data è una vacanza negli Stati Uniti o in un altro paese?
- 4. R: creazione di una mappa di province canadesi selezionate e stati degli Stati Uniti
- 5. Ricerca gratuita per le vendite negli Stati Uniti (per zip, ecc.)?
- 6. Stati Uniti Meteo Radar Data Feed o API?
- 7. c'è una libreria per analizzare gli indirizzi degli Stati Uniti?
- 8. API per ottenere il prezzo medio attuale del gas negli Stati Uniti
- 9. NSNumberFormatter per formattare i numeri di telefono degli Stati Uniti
- 10. Come evitare di ripetermi negli stati salati?
- 11. Definizioni di tipo .NET negli assembly uniti (ILMerge)
- 12. Rilevamento statico di errori negli script Tcl
- 13. Mappatura del codice postale degli Stati Uniti al fuso orario
- 14. Trova l'elemento intermedio negli array uniti in O (logn)
- 15. Dati overlay iOS (MKPolygon) per tutti gli stati degli Stati Uniti?
- 16. Come posso tenere traccia di dove i commit provenivano una volta che sono stati uniti?
- 17. Creare una heatmap degli Stati Uniti con abbreviazioni di stato e frequenza caratteristica in R
- 18. Gestione affari/festività data
- 19. Come posso colorare l'oceano blu in una mappa degli Stati Uniti?
- 20. Locale di rilevamento con Moment.js
- 21. Crea un calendario di festività con Pandas
- 22. Maschera stringa di numero di telefono degli Stati Uniti con JavaScript
- 23. Qual è il miglior tipo di colonna per un codice postale degli Stati Uniti?
- 24. Evidenziare i confini di stato e città degli Stati Uniti in Google Map API 3
- 25. Git percorsi non uniti
- 26. Ottenere latitudine e longitudine per le aree al di fuori degli Stati Uniti
- 27. Tutti gli stati Uniti Città e codici di avviamento postale in un'applicazione
- 28. CSS 3 - angoli arrotondati negli stati after e before
- 29. d3 mappa di stato degli Stati Uniti con i marcatori, zoom trasformare problemi
- 30. Come posso convalidare il numero di previdenza sociale degli Stati Uniti?
@krosenvold: questo è il punto, questi giorni festivi in genere si estendono il fine settimana e la gente lo chiamano queste vacanze. Le vacanze più lunghe di una settimana rientrano nella categoria sabbatica. – mjv
Con quanto anticipo è necessario conoscerli? –
@krosenvold: È un vero peccato, ma non posso negarlo. –