Calcolatore durata
Il calcolatore durata misura l’intervallo tra due date e orari e mostra il risultato in giorni, ore, minuti, secondi oppure unità totali.
Lo strumento può essere usato per progetti, turni, eventi, esperimenti, registri software e pianificazione. Tuttavia, un calcolo affidabile deve distinguere il tempo realmente trascorso dalla differenza di calendario e deve trattare correttamente fusi orari, ora legale, pause e convenzioni di conteggio.
Che cos’è il calcolatore durata
Un calcolatore durata confronta un inizio e una fine.
Può restituire:
- giorni, ore, minuti e secondi scomposti;
- ore totali;
- minuti totali;
- secondi totali;
- settimane e giorni;
- data finale ottenuta da inizio più durata;
- data iniziale ottenuta da fine meno durata;
- durata netta dopo pause;
- intervallo tra istanti in fusi diversi;
- periodo di calendario in anni, mesi e giorni.
I dati necessari
Per il calcolo base servono:
- data iniziale;
- ora iniziale;
- data finale;
- ora finale;
- fuso orario, quando le date rappresentano orari locali;
- eventuali pause o intervalli da sottrarre.
Se il fuso non viene indicato, il risultato dipende dalla convenzione adottata dall’applicazione o dal dispositivo.
Istante e orario locale
Un istante rappresenta un punto univoco sulla linea temporale.
Un orario locale, come “2026-10-25 alle 02:30”, non è sempre univoco: durante il ritorno dall’ora legale può verificarsi due volte. Al contrario, durante l’avanzamento primaverile alcuni orari locali possono non esistere.
Per questo motivo, il calcolatore durata dovrebbe conservare insieme data, ora e identificatore del fuso.
UTC e fuso orario
UTC è il riferimento usato per confrontare istanti globali.
Un fuso regionale come:
Europe/Rome America/New_York Asia/Tokyo
contiene regole storiche e future sugli offset. Invece, un valore come UTC+1 descrive soltanto un offset fisso e non include automaticamente l’ora legale.
Perché usare identificatori IANA
Le regole dei fusi cambiano per decisioni politiche e vengono aggiornate periodicamente.
Di conseguenza, un’applicazione dovrebbe usare una versione recente della IANA Time Zone Database e identificatori regionali, non abbreviazioni ambigue come CST o IST.
Formula per il tempo trascorso
Dopo aver trasformato inizio e fine in istanti confrontabili:
Durata = timestamp finale - timestamp iniziale
Se i timestamp sono espressi in millisecondi:
Durata in secondi = (fine_ms - inizio_ms) / 1000
Il risultato può essere negativo quando la fine precede l’inizio. L’interfaccia dovrebbe segnalarlo o consentire esplicitamente intervalli con segno.
Che cos’è un timestamp Unix
Un timestamp Unix/POSIX rappresenta approssimativamente il numero di secondi trascorsi dall’epoca:
1970-01-01T00:00:00Z
In JavaScript tradizionale, il valore di un oggetto Date usa millisecondi rispetto alla stessa epoca.
Scomporre i secondi in unità leggibili
Data una durata non negativa S:
Giorni = floor(S / 86400) Resto1 = S mod 86400 Ore = floor(Resto1 / 3600) Resto2 = Resto1 mod 3600 Minuti = floor(Resto2 / 60) Secondi = Resto2 mod 60
Questa scomposizione usa giorni convenzionali da 24 ore.
Unità di tempo standard
| Unità | Equivalenza convenzionale |
|---|---|
| 1 minuto | 60 secondi |
| 1 ora | 60 minuti = 3.600 secondi |
| 1 giorno convenzionale | 24 ore = 86.400 secondi |
| 1 settimana | 7 giorni = 604.800 secondi |
Durata trascorsa e periodo di calendario
Una durata trascorsa può essere espressa esattamente in secondi.
Un periodo di calendario, invece, può contenere anni, mesi e giorni:
1 anno, 2 mesi e 5 giorni
I mesi non hanno tutti la stessa lunghezza e gli anni possono avere 365 o 366 giorni. Pertanto, non esiste una conversione universale di “un mese” in un numero fisso di secondi.
Un giorno non è sempre 24 ore locali
Durante il passaggio primaverile all’ora legale, una giornata locale può contenere 23 ore trascorse.
Durante il ritorno all’ora standard, può invece contenerne 25.
Ora legale: intervalli mancanti e duplicati
Quando l’orologio avanza, alcuni orari non esistono.
Quando torna indietro, un intervallo locale si ripete. Per esempio, “02:30” può corrispondere a due istanti diversi.
Un buon calcolatore dovrebbe chiedere come risolvere l’ambiguità oppure mostrare entrambi gli offset possibili.
La differenza tra New York e Londra
Non è corretto assumere una differenza fissa di cinque ore per tutto l’anno.
Stati Uniti e Regno Unito cambiano l’ora legale in date differenti. Durante alcune settimane la differenza può essere di quattro ore, mentre in altri periodi è normalmente di cinque.
Perciò, bisogna confrontare gli istanti usando `America/New_York` ed `Europe/London` alla data specifica.
Anno bisestile
Nel calendario gregoriano un anno è bisestile quando:
- è divisibile per 4;
- ma, se è divisibile per 100, deve essere anche divisibile per 400.
Quindi 2000 e 2024 sono bisestili, mentre 1900 e 2100 non lo sono.
Perché gli anni bisestili contano
Un intervallo che attraversa il 29 febbraio contiene un giorno aggiuntivo rispetto a un anno comune.
Se si usano vere date di calendario, una libreria corretta gestisce automaticamente il giorno. Tuttavia, una formula che moltiplica semplicemente gli anni per 365 produce un errore.
Secondi intercalari
UTC può includere secondi intercalari per mantenere il collegamento con la rotazione terrestre.
Tuttavia, molti sistemi informatici, inclusi POSIX e i valori temporali ECMAScript, non rappresentano questi secondi come timestamp distinti.
Per attività quotidiane la differenza è normalmente irrilevante. Invece, metrologia, astronomia e sincronizzazione di precisione possono richiedere strumenti specializzati.
ISO 8601 per date e orari
ISO 8601 usa un ordine non ambiguo:
AAAA-MM-GG
Una data e ora UTC può essere rappresentata come:
2026-06-25T14:30:00Z
Un offset esplicito può apparire così:
2026-06-25T16:30:00+02:00
Le due stringhe dell’esempio rappresentano lo stesso istante.
Durate ISO 8601
Una durata può essere scritta con la lettera P:
P3DT4H30M
che indica 3 giorni, 4 ore e 30 minuti.
La lettera M significa mesi nella parte di data e minuti dopo la T. Di conseguenza, il parser deve distinguere correttamente le due posizioni.
Esempio completo tra due date
Inizio:
1 gennaio 2025, 08:00
Fine:
15 marzo 2025, 14:45
Assumendo lo stesso fuso e nessun cambio di offset nell’interpretazione scelta:
Durata = 73 giorni, 6 ore e 45 minuti
Ore totali:
73 × 24 + 6 + 45/60 = 1.758,75 ore
Controllare l’esempio lungo
Dal 1° gennaio al 1° febbraio trascorrono 31 giorni.
Dal 1° febbraio al 1° marzo 2025 trascorrono 28 giorni. Dal 1° marzo al 15 marzo trascorrono altri 14 giorni.
31 + 28 + 14 = 73 giorni
La differenza oraria aggiunge 6 ore e 45 minuti.
Esempio di turno giornaliero
Ingresso alle 09:15 e uscita alle 18:30:
Durata lorda = 9 ore e 15 minuti Ore decimali = 9,25 Minuti totali = 555
Con una pausa non retribuita di 45 minuti:
Durata netta = 8 ore e 30 minuti Ore decimali nette = 8,5
Ore e ore decimali
Le ore decimali non usano minuti in base 100.
15 minuti = 15/60 = 0,25 ore 30 minuti = 0,50 ore 45 minuti = 0,75 ore
Sottrarre le pause
La formula generale è:
Durata netta = durata lorda - somma delle pause
Le pause devono essere comprese nell’intervallo e non devono sovrapporsi. In caso contrario, la sottrazione può duplicare minuti o produrre un valore negativo.
Più intervalli di lavoro
Per una giornata divisa:
Totale = (fine1 - inizio1) + (fine2 - inizio2) + ...
09:00–12:30 = 3 h 30 min 13:30–17:45 = 4 h 15 min Totale = 7 h 45 min
Turno che attraversa la mezzanotte
Un turno dalle 22:00 alle 06:00 termina il giorno successivo.
Se il calcolatore riceve soltanto gli orari, deve offrire un’opzione “fine il giorno successivo” oppure richiedere le date complete.
22:00 → 24:00 = 2 ore 00:00 → 06:00 = 6 ore Totale = 8 ore
Turno durante un cambio DST
Un turno notturno può durare un’ora in meno o in più rispetto alla semplice differenza dell’orologio.
Per ottenere il tempo trascorso reale, bisogna convertire inizio e fine in istanti con il fuso regionale corretto e sottrarre gli istanti.
Data inclusiva o esclusiva
Il conteggio tra sole date può seguire convenzioni differenti.
Dal 1° giugno al 2 giugno:
- differenza esclusiva: 1 giorno trascorso;
- conteggio inclusivo dei giorni di calendario: 2 date conteggiate.
Il calcolatore durata dovrebbe dichiarare chiaramente la modalità.
Countdown fino a un evento
Dal 1° giugno 2025 al 10 settembre 2025 trascorrono 101 giorni, considerando la differenza tra le due date e non includendo due volte il giorno iniziale.
Un countdown con orari e fusi deve invece usare istanti completi.
Durata negativa
Se la fine precede l’inizio:
Durata = fine - inizio < 0
L’applicazione può:
- mostrare il segno negativo;
- scambiare automaticamente i valori con avviso;
- bloccare il calcolo;
- interpretare la fine come giorno successivo, solo in una modalità dedicata.
Calcolo inverso della data finale
Con una durata esatta:
Fine = inizio + durata
Tuttavia, bisogna specificare se la durata contiene secondi esatti o unità di calendario.
Calcolo inverso della data iniziale
Analogamente:
Inizio = fine - durata
Vicino ai cambi di fuso, sottrarre un giorno di calendario non equivale necessariamente a sottrarre 24 ore.
Aggiungere mesi e anni
Le operazioni di calendario possono incontrare date inesistenti.
Il calcolatore deve dichiarare la propria politica.
Fine mese
Quando si aggiungono mesi, una strategia trasparente è “constrain”: mantenere il giorno quando possibile, altrimenti usare l’ultimo giorno valido del mese.
Un’altra strategia è rifiutare l’operazione e chiedere una data valida. Entrambe possono essere corrette se documentate.
Durata per fatturazione
Per fatture o timesheet, il risultato matematico può richiedere:
- sottrazione delle pause;
- arrotondamento a 5, 10, 15 o 30 minuti;
- tariffe differenti per fascia;
- ore notturne o festive;
- minimo fatturabile;
- valuta e imposte.
Queste regole non derivano dalla semplice sottrazione temporale.
Durata per paghe
Un calcolatore durata può aiutare a controllare le ore, ma non determina da solo la retribuzione.
Contratto, pause, straordinari, arrotondamenti e norme applicabili devono essere gestiti da un sistema paghe o da un professionista competente.
Durata nei log software
Per eventi distribuiti è preferibile registrare:
- timestamp UTC;
- precisione disponibile;
- identificatore del fuso, se serve ricostruire l’orario locale;
- ID dell’evento;
- eventuale clock monotonic per misurare durate brevi.
Orologio civile e orologio monotono
L’orologio civile può essere corretto o sincronizzato durante l’esecuzione.
Per misurare la durata di un processo breve, un clock monotono è più sicuro perché non torna indietro quando cambia l’ora di sistema.
Precisione: secondi, millisecondi e oltre
Il risultato non può essere più preciso dei dati di ingresso e dell’orologio usato.
- input al minuto: non giustifica millisecondi;
- input al secondo: può mostrare secondi;
- log ad alta risoluzione: può richiedere millisecondi, microsecondi o nanosecondi.
Mostrare molte cifre non aumenta l’accuratezza reale.
Arrotondamento
Le modalità comuni sono:
- arrotondamento matematico;
- difetto;
- eccesso;
- arrotondamento a un intervallo configurabile.
Il risultato grezzo dovrebbe restare disponibile per la verifica.
Tempo totale e formato scomposto
La stessa durata può essere mostrata come:
1 giorno, 2 ore e 30 minuti 26 ore e 30 minuti 1.590 minuti 95.400 secondi
Il formato scomposto è leggibile; le unità totali sono utili per calcoli successivi.
Settimane, mesi e anni
Le settimane equivalgono sempre a sette giorni convenzionali nel modello semplice.
Mesi e anni, invece, devono essere trattati come unità di calendario. Convertirli usando valori medi può essere utile per stime, ma non produce una data esatta.
Formato di input non ambiguo
La stringa `03/04/2026` può significare 3 aprile oppure 4 marzo.
Perciò, il formato consigliato per lo scambio dati è:
2026-04-03
L’interfaccia può mostrare il formato locale, ma dovrebbe memorizzare una rappresentazione non ambigua.
Ora a 12 e 24 ore
Il formato 24 ore evita ambiguità tra AM e PM.
In particolare, mezzanotte e mezzogiorno possono creare errori nel formato a 12 ore. È preferibile mostrare esempi espliciti:
00:00 = mezzanotte 12:00 = mezzogiorno 18:30 = 6:30 PM
Validazione degli input
Un buon calcolatore durata dovrebbe verificare:
- date valide;
- ore comprese negli intervalli ammessi;
- fuso riconosciuto;
- gestione di orari mancanti o duplicati;
- fine precedente all’inizio;
- pause non sovrapposte;
- durata compatibile con il formato;
- assenza di valori non numerici.
Messaggi di errore utili
- “La data 31 febbraio non esiste”.
- “L’orario locale selezionato non esiste a causa del cambio dell’ora”.
- “Questo orario si verifica due volte: seleziona il primo o il secondo offset”.
- “La fine precede l’inizio”.
- “Le pause inserite si sovrappongono”.
- “Seleziona un fuso regionale, per esempio Europe/Rome”.
Privacy dei dati
Per calcolare una durata non servono nomi, email o dettagli sensibili.
Quando possibile, il calcolo può essere eseguito localmente nel browser. Inoltre, il sito dovrebbe spiegare se salva cronologia, esportazioni o dati inseriti.
Come verificare il risultato
- Controlla date, orari e fusi.
- Converti entrambi gli istanti in UTC.
- Sottrai i timestamp.
- Riconverti il totale nelle unità desiderate.
- Controlla eventuali cambi DST.
- Sottrai le pause una sola volta.
- Confronta ore scomposte e ore totali.
- Verifica la convenzione inclusiva o esclusiva.
Errori frequenti
- ignorare il fuso orario;
- usare un offset fisso per date con DST;
- assumere che ogni giorno locale abbia 24 ore;
- confondere mesi di calendario e giorni medi;
- contare entrambe le date senza dichiararlo;
- dimenticare i turni oltre mezzanotte;
- confondere 8:30 con 8,30 ore decimali;
- sottrarre pause sovrapposte;
- usare timestamp civili per benchmark brevi;
- dichiarare una precisione maggiore di quella degli input.
Procedura consigliata
- Definisci se vuoi tempo trascorso o periodo di calendario.
- Inserisci data e ora complete.
- Seleziona il fuso regionale per ogni estremo.
- Decidi la gestione degli orari ambigui.
- Calcola la differenza tra gli istanti.
- Sottrai le pause.
- Scegli formato scomposto o unità totali.
- Applica eventuale arrotondamento soltanto dopo.
- Controlla il risultato con una seconda rappresentazione.
- Conserva input e regole se il calcolo deve essere riprodotto.
Come usare il calcolatore durata
Nel calcolatore durata, inserisci prima data, ora e fuso dell’inizio. Successivamente, completa gli stessi campi per la fine.
Indica eventuali pause e scegli se desideri tempo trascorso, differenza di calendario oppure calcolo inverso. Infine, seleziona l’unità e controlla il riepilogo degli offset usati.
Domande frequenti
Come funziona il calcolatore durata?
Converte in istanti le date e gli orari inseriti, sottrae l’istante iniziale da quello finale e presenta il risultato in giorni, ore, minuti e secondi. Per le date locali deve conoscere anche il fuso orario.
Il calcolatore gestisce l’ora legale?
Solo se usa identificatori di fuso IANA aggiornati, come Europe/Rome o America/New_York. Un semplice offset UTC fisso non descrive correttamente tutti i passaggi stagionali e storici.
Qual è la differenza tra durata trascorsa e durata di calendario?
La durata trascorsa misura secondi reali tra due istanti. La durata di calendario esprime anni, mesi e giorni civili, che non hanno sempre una lunghezza fissa in secondi.
Un giorno equivale sempre a 24 ore?
Un giorno convenzionale vale 24 ore, ma una giornata locale attraversata da un cambio dell’ora legale può contenere 23 o 25 ore di tempo trascorso.
Posso calcolare una data finale partendo da una durata?
Sì. Tuttavia, aggiungere 24 ore e aggiungere un giorno di calendario possono produrre orari locali diversi vicino a un cambio di fuso o di ora legale.
Il risultato può essere usato direttamente per paghe e fatture?
Il risultato matematico è una base di controllo. Pause, arrotondamenti, turni notturni, regole contrattuali e normative devono essere applicati separatamente.
Fonti autorevoli
- ISO: formato internazionale di data e ora
- ISO 8601-1:2019
- IANA Time Zone Database
- NIST: UTC e secondi intercalari
- The Open Group: secondi dall’epoca POSIX
- ECMAScript: valori temporali e Date
- TC39 Temporal: date, durate e fusi orari
Contenuto aggiornato il 25 giugno 2026. Le regole dei fusi orari possono cambiare; un’applicazione deve mantenere aggiornata la propria banca dati IANA.