Giorni, settimane, mesi e giorni feriali tra due date.
Misurare l'intervallo tra due date è uno dei problemi aritmetici più cercati sul web. I team delle paghe ne hanno bisogno per i periodi di maturazione, i genitori lo calcolano per i tagli d'iscrizione scolastica, gli avvocati lo usano per i periodi di preavviso contrattuale, i project manager ne hanno bisogno per lo slittamento delle milestone, e chiunque stia pianificando un matrimonio, un anno sabbatico o un lungo viaggio vuole sapere quanti "dormire" restano. Scorciatoie mentali ("circa tre mesi e un po'") sono rapide ma inaffidabili, specialmente attraverso anni bisestili o attraversamenti di confine mensili, e persino i fogli di calcolo non concordano sul fatto che una durata di "un mese" debba significare 30 giorni, 30,44 giorni o "lo stesso giorno del calendario, il mese successivo". Questo calcolatore restituisce quattro viste complementari dello stesso intervallo: giorni totali, settimane equivalenti, mesi e anni equivalenti e una scomposizione in anni Y, mesi M, giorni D, in modo che qualunque interpretazione il tuo contesto richieda, il numero giusto sia sullo schermo. Scompone anche il conteggio dei giorni feriali rispetto ai fine settimana per i casi d'uso in cui contano solo i giorni lavorativi, come i periodi di preavviso, le richieste di ferie, le stime di transito merci e le scadenze legali.
L'aritmetica sembra banale: sottrarre l'inizio dalla fine e dividere per 86.400.000 millisecondi, ma le sorprese risiedono nel livello del calendario sopra il livello dei millisecondi. I giorni totali sono calcolati come il numero intero di giorni tra le due mezzanotte, perché la sottrazione grezza dei millisecondi può causare dispersioni di ore quando il fuso orario ha una transizione di ora legale tra le due date. La scomposizione in Y/M/D prende in prestito da una denominazione superiore quando una inferiore diventa negativa: se il giorno del mese di fine è inferiore al giorno del mese di inizio, prendiamo in prestito il numero di giorni del mese precedente e decrementiamo il conteggio dei mesi; se i mesi diventano negativi, prendiamo in prestito dodici dal conteggio degli anni. I mesi totali sono calcolati da questa scomposizione (Y × 12 + M) in modo che il conteggio corrisponda al calendario, non a un'approssimazione uniforme di 30,44 giorni. Le settimane totali sono i giorni totali divisi per sette. Gli anni totali sono i giorni totali divisi per 365,25, la durata media di un anno gregoriano che tiene conto del ciclo di quattrocento anni bisestili. Il conteggio dei soli giorni feriali attraversa l'intervallo un giorno alla volta ed esclude i sabati e le domeniche.
Il modulo ha tre input: una data di inizio, una data di fine e una casella di controllo per includere la data di fine stessa nel conteggio. La casella di controllo è importante per le richieste di ferie e i periodi di noleggio, che di solito contano entrambi gli estremi, e per le stime di consegna, che tipicamente non lo fanno. Se inverti le date per errore, il calcolatore le capovolge silenziosamente in modo che la durata sia sempre positiva; non esiste un concetto di durata negativa nel risultato. I valori predefiniti coprono dal 1° gennaio 2025 al 1° maggio 2026, una finestra di sedici mesi che attraversa un anno solare, in modo che tutte e quattro le denominazioni mostrino valori significativi. Il pannello dei risultati presenta i giorni totali, quindi mostra settimane, mesi, anni e la scomposizione Y·M·D, e finisce con il conteggio dei soli giorni feriali per i calcoli dei giorni lavorativi.
Prendi in considerazione un matrimonio pianificato per il 31 maggio 2026 da un "oggi" del 1° maggio 2026 con la casella di controllo della data di fine disattivata: giorni totali sono trenta, settimane totali sono 4,29, mesi totali sono uno, anni totali sono 0,08, e la scomposizione indica 0 a · 1 m · 0 g perché il giorno del mese si allinea. Ora estendi a un periodo di preavviso di un anno dal 1° gennaio 2025 al 1° gennaio 2026: giorni totali sono 365 (nessun anno bisestile attraversato), settimane totali sono 52,14, mesi totali sono dodici, anni totali sono 1,00, e Y·M·D è 1 a · 0 m · 0 g. Il conteggio dei soli giorni feriali per quell'anno è 261, il riferimento standard di "giorni lavorativi in un anno" per molti sistemi HR e paghe. Attraversa un anno bisestile (dal 1° gennaio 2024 al 1° gennaio 2025) e i giorni totali diventano 366, mentre la scomposizione del calendario è ancora 1 a · 0 m · 0 g: stessa durata di calendario, un giorno fisico in più. Questa è la tensione che il calcolatore risolve: stessa durata di calendario, conteggio diverso dei giorni totali.
Primo, "un mese" non sono trenta giorni. I mesi del calendario vanno da 28 a 31 giorni e gli strumenti che li approssimano a 30 o 30,44 (la media) deviano fino al dieci percento su brevi intervalli. Utilizza la scomposizione Y·M·D quando conta il calendario (compleanni, anniversari di contratto) e i giorni totali quando conta la durata nel tempo reale (maturazione degli interessi, esaurimento del progetto). Secondo, le transizioni dell'ora legale aggiungono o rimuovono un'ora due volte all'anno; il calcolatore opera in giorni di calendario piuttosto che in millisecondi per evitare questo problema. Terzo, includere la data di fine raddoppia la superficie degli errori di off-by-one. Un noleggio di cinque giorni dal lunedì al venerdì include sia il lunedì che il venerdì: attiva l'interruttore. Una "consegna in cinque giorni lavorativi da lunedì" di solito significa il venerdì successivo: disattiva l'interruttore. Quarto, i conteggi dei giorni feriali ignorano le festività pubbliche. Se hai bisogno di aritmetica dei giorni lavorativi bancari, sottrai separatamente le festività. Quinto, intervalli molto lunghi (secoli) amplificano l'errore di approssimazione dell'anno 365,25; per lavori genealogici o astronomici, preferisci la scomposizione Y·M·D.
Il calcolo "età in anni" è un caso speciale di differenza di date in cui la data di fine è oggi; condivide la stessa logica Y·M·D ma di solito solo il conteggio degli anni viene mostrato all'utente. Strumenti di progetto (diagrammi di Gantt, Asana, Linear) utilizzano tutti la differenza di date internamente per calcolare la durata delle attività; la loro particolarità è l'aritmetica dei giorni lavorativi in cui fine settimana e festività aziendali vengono esclusi. Gli strumenti finanziari utilizzano convenzioni di conteggio dei giorni che vanno oltre: 30/360, effettivo/360, effettivo/effettivo, tutti i quali presuppongono conteggi diversi per numeratore e denominatore a seconda del mercato obbligazionario. L'astronomia utilizza il numero di giorni giuliani, un conteggio continuo di giorni dal 1° gennaio 4713 a.C., che aggira completamente il calendario. L'ora UNIX utilizza i secondi dal 1° gennaio 1970 UTC. Tutti questi si risolvono nella stessa durata fisica quando le unità vengono convertite; il disaccordo riguarda sempre solo su quale livello di calendario proiettare la durata.