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.

Metodo e accuratezza. Questa guida distingue istanti UTC, orari locali, durate esatte e periodi di calendario. I riferimenti tecnici includono ISO 8601, IANA Time Zone Database, NIST, POSIX/Open Group ed ECMAScript Temporal. Il calcolatore fornisce un risultato matematico; per paghe, contratti, SLA o documenti ufficiali occorre applicare anche le regole pertinenti.

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.

Limite tecnico. POSIX ed ECMAScript trattano ogni giorno come 86.400 secondi e non rappresentano normalmente gli istanti interni alle seconde intercalari. Per misure scientifiche specialistiche può servire una scala temporale diversa.

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 minuto60 secondi
1 ora60 minuti = 3.600 secondi
1 giorno convenzionale24 ore = 86.400 secondi
1 settimana7 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.

Esempio concettuale. Aggiungere “1 giorno di calendario” alle 12:00 locali cerca normalmente le 12:00 del giorno successivo. Aggiungere “24 ore esatte” aggiunge 86.400 secondi e può produrre le 11:00 o le 13:00 locali vicino a un cambio DST.

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
Errore frequente. 8 ore e 30 minuti equivalgono a 8,5 ore, non a 8,30 ore decimali.

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) + ...
Esempio.
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.

Esempio. Un mese dopo il 31 gennaio non ha una risposta unica in tutti i sistemi: alcune librerie scelgono l’ultimo giorno di febbraio, altre applicano regole di overflow.

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.

Uso tecnico. I timestamp civili servono per sapere “quando” è avvenuto un evento; un clock monotono serve per misurare “quanto è durato”.

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

  1. Controlla date, orari e fusi.
  2. Converti entrambi gli istanti in UTC.
  3. Sottrai i timestamp.
  4. Riconverti il totale nelle unità desiderate.
  5. Controlla eventuali cambi DST.
  6. Sottrai le pause una sola volta.
  7. Confronta ore scomposte e ore totali.
  8. 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

  1. Definisci se vuoi tempo trascorso o periodo di calendario.
  2. Inserisci data e ora complete.
  3. Seleziona il fuso regionale per ogni estremo.
  4. Decidi la gestione degli orari ambigui.
  5. Calcola la differenza tra gli istanti.
  6. Sottrai le pause.
  7. Scegli formato scomposto o unità totali.
  8. Applica eventuale arrotondamento soltanto dopo.
  9. Controlla il risultato con una seconda rappresentazione.
  10. 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

Contenuto aggiornato il 25 giugno 2026. Le regole dei fusi orari possono cambiare; un’applicazione deve mantenere aggiornata la propria banca dati IANA.

Share this:

Table of contents

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

You can use the Markdown in the comment form.