ToolDeck

Calcolatrice Date

Calcola la differenza tra due date in anni, mesi, giorni e altro

Cos'è il calcolo tra date?

Il calcolo tra date è il processo per trovare la differenza tra due date del calendario o per aggiungere/sottrarre una durata da una data specificata. Una calcolatrice date online permette di determinare il numero esatto di giorni, settimane, mesi e anni tra due date qualsiasi, senza contare manualmente. Viene utilizzata nella pianificazione di progetti, nel diritto contrattuale, nella contabilità finanziaria e nello sviluppo software.

La complessità del calcolo tra date deriva dalla struttura irregolare del calendario gregoriano. I mesi hanno 28, 29, 30 o 31 giorni. Gli anni hanno 365 o 366 giorni a seconda delle regole sugli anni bisestili. Una semplice sottrazione dei numeri dei giorni produce risultati errati quando le date si trovano in mesi o anni diversi. Gli algoritmi per la differenza tra date devono tenere conto di queste irregolarità elaborando separatamente ciascuna unità del calendario.

L'aritmetica delle date compare in molti contesti di programmazione: calcolo della scadenza dei token, pianificazione di eventi ricorrenti, calcolo delle scadenze SLA o misurazione del tempo trascorso tra voci di log. Nei flussi di lavoro DevOps si manifesta come finestre di validità dei certificati, durate dei blocchi di deployment e lunghezze delle rotazioni di on-call. Sebbene la maggior parte dei linguaggi fornisca librerie per le date, una calcolatrice basata su browser fornisce risposte immediate per verifiche rapide senza scrivere codice, installare dipendenze o aprire un REPL.

Perché usare questa calcolatrice date?

Ottieni immediatamente il dettaglio del tempo tra due date qualsiasi, con risultati in più unità contemporaneamente. Nessuna formula, nessun codice, nessuna registrazione.

Risultati Immediati
Scegli due date e visualizza la differenza in anni, mesi, settimane, giorni, ore e minuti. I risultati si aggiornano al cambio di qualsiasi data.
🔒
Privacy Prima di Tutto
Tutti i calcoli vengono eseguiti nel browser. Nessuna data viene inviata a server esterni e nulla viene memorizzato o registrato.
📅
Unità di Output Multiple
Visualizza il risultato in ogni unità contemporaneamente: giorni totali, settimane, mesi e una scomposizione completa in anni, mesi e giorni. Nessuna necessità di convertire manualmente tra unità.
🔢
Nessun Account Richiesto
Usa lo strumento immediatamente. Non è richiesto login, abbonamento o limite di utilizzo. Aggiungi ai preferiti e usalo ogni volta che hai bisogno di una verifica rapida delle date.

Casi d'uso della calcolatrice date

Sviluppo Frontend
Controlla quanti giorni mancano alla data di lancio di una funzionalità, verifica la logica del timer per il conto alla rovescia o testa i componenti per la selezione date rispetto agli intervalli attesi.
Sviluppo Backend
Valida le finestre di scadenza dei token, calcola la durata del TTL della cache o verifica che gli intervalli dei job schedulati producano le date di esecuzione successive corrette.
DevOps e SRE
Misura il divario tra i timestamp degli incidenti nei post-mortem, calcola i tempi di anticipo per la scadenza dei certificati o determina la durata dei blocchi di deployment durante i periodi festivi.
QA e Testing
Genera dati di test con specifici offset di date, verifica la logica di controllo dell'età calcolando le età esatte dalle date di nascita, o conferma che le condizioni limite sulle date vengano gestite correttamente.
Project Management
Calcola la durata degli sprint, misura il numero di giorni lavorativi tra le milestone o stima le tempistiche di consegna contando i giorni di calendario dalla data di inizio.
Studenti e Apprendimento
Conta i giorni fino a un esame, calcola la durata del semestre o verifica le risposte ai compiti per gli esercizi di aritmetica delle date nei corsi di informatica.

Riferimento sulle unità di durata tra date

I calcoli della differenza tra date coinvolgono unità di lunghezza variabile. Mesi e anni non sono durate fisse, motivo per cui una semplice divisione per i giorni totali può produrre risultati imprecisi. La tabella seguente elenca ciascuna unità con il suo intervallo:

UnitàEquivalenteNota
1 year365 or 366 daysDepends on leap year
1 month28–31 daysVaries by month
1 week7 daysFixed
1 day24 hoursFixed (ignoring DST transitions)
1 hour3,600 secondsFixed
1 minute60 secondsFixed

Formati di data più comuni

Quando si lavora con le date in modo programmatico, il formato determina come viene analizzata una stringa di data. Usare il formato sbagliato causa bug silenziosi. ISO 8601 è la scelta più sicura per lo scambio di dati perché è inequivocabile e compatibile con i fusi orari. La tabella seguente elenca i formati che incontrerai più comunemente:

FormatoEsempioUsato in
ISO 86012026-04-10T14:30:00ZAPIs, databases, logs
RFC 2822Fri, 10 Apr 2026 14:30:00 +0000Email headers, HTTP
Unix timestamp1775831400Epoch-based systems
US format04/10/2026User-facing (US locale)
European format10.04.2026User-facing (EU locale)
Short ISO2026-04-10HTML date inputs, SQL DATE

Esempi di codice: calcolo dei giorni tra due date

Esempi funzionanti per calcolare la differenza tra due date in JavaScript, Python, Go e dalla riga di comando. Ogni snippet mostra sia il calcolo dei giorni totali sia la scomposizione per unità di calendario dove il linguaggio lo supporta.

JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85

// Get year, month, day breakdown
function dateDiff(a, b) {
  let years = b.getFullYear() - a.getFullYear()
  let months = b.getMonth() - a.getMonth()
  let days = b.getDate() - a.getDate()
  if (days < 0) {
    months--
    days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
  }
  if (months < 0) { years--; months += 12 }
  return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

start = date(2026, 1, 15)
end = date(2026, 4, 10)

# Total days
diff = (end - start).days
print(diff)  # → 85

# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d")  # → 0y 2m 26d

# Add 90 days to a date
future = start + timedelta(days=90)
print(future)  # → 2026-04-15
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC)
	end := time.Date(2026, 4, 10, 0, 0, 0, 0, time.UTC)

	// Total duration
	diff := end.Sub(start)
	days := int(diff.Hours() / 24)
	fmt.Println(days) // → 85

	// Add 90 days
	future := start.AddDate(0, 0, 90)
	fmt.Println(future.Format("2006-01-02")) // → 2026-04-15
}
CLI (GNU date / macOS)
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85

# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15

# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15

Domande frequenti

Come si calcola il numero di giorni tra due date?
Sottrai la data precedente da quella successiva per ottenere la differenza in millisecondi (o nel tipo di durata nativo del tuo linguaggio), poi dividi per il numero di millisecondi in un giorno (86.400.000). Questo fornisce i giorni totali trascorsi. Per una scomposizione nel calendario in anni, mesi e giorni rimanenti, è necessario elaborare ogni unità singolarmente perché i mesi hanno lunghezze variabili.
La differenza tra date include la data di inizio o quella di fine?
Per convenzione, la differenza tra date conta i giorni tra le due date, escludendo o la data di inizio o quella di fine. Se selezioni il 1° gennaio e il 2 gennaio, il risultato è 1 giorno. Se il tuo caso d'uso richiede un conteggio inclusivo (entrambi gli estremi inclusi), aggiungi 1 al risultato. Questo strumento segue la convenzione con fine esclusivo usata dalla maggior parte dei linguaggi di programmazione.
Come vengono gestiti gli anni bisestili nei calcoli tra date?
Un anno bisestile aggiunge il 29 febbraio, portando l'anno a 366 giorni anziché 365. La regola gregoriana degli anni bisestili è: divisibile per 4, eccetto i secoli, che devono essere anche divisibili per 400. Quindi il 2024 e il 2028 sono anni bisestili, il 1900 non lo era, mentre il 2000 lo era. Gli algoritmi per la differenza tra date che lavorano con unità di calendario (anno/mese/giorno) gestiscono questo automaticamente. Gli algoritmi che convertono in giorni totali devono tenere conto del giorno extra quando l'intervallo comprende un 29 febbraio.
Qual è la differenza tra giorni di calendario e giorni lavorativi?
I giorni di calendario contano ogni giorno inclusi i weekend e i festivi. I giorni lavorativi (chiamati anche giorni feriali) escludono sabato, domenica e i giorni festivi. Questo strumento calcola i giorni di calendario. Per convertire in giorni lavorativi approssimativi, moltiplica i giorni di calendario totali per 5/7. Per un conteggio esatto dei giorni lavorativi, è necessario anche un calendario delle festività per la giurisdizione pertinente.
Posso calcolare una data futura aggiungendo giorni a una data di inizio?
Sì. In JavaScript, crea un oggetto Date e chiama setDate(getDate() + n). In Python, aggiungi un timedelta(days=n) a un oggetto date. In Go, usa time.AddDate(0, 0, n). Questo strumento si concentra sulla differenza tra due date note, ma puoi usarlo per verificare la tua aritmetica: inserisci la data di inizio e la data risultante attesa, e conferma che l'output dei giorni totali corrisponda all'offset aggiunto.
Perché strumenti diversi danno risultati diversi per i mesi tra due date?
Il calcolo dei mesi è ambiguo perché i mesi hanno lunghezze diverse. Considera il 31 gennaio al 28 febbraio: è 1 mese o 0 mesi e 28 giorni? Librerie diverse fanno scelte diverse. La convenzione più comune (usata da dateutil di Python, Period di Java e questo strumento) conta un mese intero come il raggiungimento dello stesso giorno del mese o dell'ultimo giorno valido del mese più corto. Verifica sempre quale convenzione usa la tua libreria quando confronti i risultati.
Il calcolo tra date è influenzato dai fusi orari?
Quando selezioni date senza una componente oraria (solo anno-mese-giorno), il calcolo è indipendente dal fuso orario perché opera su date di calendario, non su istanti nel tempo. Se hai bisogno di calcolare la differenza tra due momenti specifici (inclusi ora e fuso orario), dovresti lavorare con timestamp ISO 8601 completi e convertire entrambi in UTC prima di sottrarre. Questo strumento opera solo su date di calendario.