Differenza in decenni tra due date
Il calcolatore della differenza in decenni misura quanti periodi completi di dieci anni separano due date ISO esplicite.
Esegui gratis nel browser
Inserisca una data iniziale e una finale nel formato YYYY-MM-DD: riceverà un intero positivo se la seconda data è successiva, negativo se è precedente e zero se non sono trascorsi dieci anni interi. Il calcolo applica regole fisse del calendario gregoriano in UTC, senza dipendere dall’ora corrente, dal fuso orario del browser o da servizi esterni.
Che cosa indica un decennio intero in questo calcolo
Un decennio intero è un intervallo completo di dieci anni di calendario misurato dalla prima data, non un semplice confronto tra i nomi dei decenni. Dal 15 giugno 2000 al 14 giugno 2020 è trascorso un solo decennio intero, perché manca ancora un giorno al secondo anniversario decennale. Il 15 giugno 2020 il risultato diventa due. Questa distinzione impedisce di arrotondare per eccesso date vicine a un anniversario solo perché i rispettivi anni differiscono di venti. Significa inoltre che due date possono trovarsi in decenni nominali diversi e produrre comunque zero. L’output è volutamente un intero e scarta qualsiasi resto incompleto successivo all’ultimo anniversario di dieci anni. Tale comportamento è utile quando una politica, un archivio, un contratto o una regola di rendicontazione fa riferimento a decenni compiuti anziché a una durata approssimativa. Entrambi gli input devono essere date ISO esplicite in formato YYYY-MM-DD, affinché l’interpretazione sia chiara e riproducibile.
Segno, regole UTC e giorni bisestili
Il segno segue l’ordine in cui Lei fornisce le date. Se la seconda data è successiva alla prima, il conteggio è positivo. Se è precedente, lo stesso numero di decenni interi viene restituito come intero negativo. Date uguali producono zero. Invertendo la coppia cambia quindi il segno ma non il valore assoluto, un comportamento pratico per ordinamenti, confronti e calcoli direzionali. La convalida e l’aritmetica adottano il calendario gregoriano prolettico e non utilizzano l’oggetto Date di JavaScript. Non intervengono conversioni di fuso locale, passaggi all’ora legale, orologio corrente, richieste di rete o parser dipendenti dalla lingua. Se la data iniziale è il 29 febbraio, l’anniversario viene considerato il 28 febbraio quando l’anno di destinazione non è bisestile. Questa regola esplicita stabilizza il risultato ai confini bisestili e rimane coerente con la normale aritmetica delle durate di calendario. Sono ammessi gli anni da 0001 a 9999.
Come utilizzare correttamente il risultato
Invii la data ISO iniziale nel campo from e quella finale nel campo to. La risposta ripete entrambi gli input convalidati, fornisce il numero di decenni con segno e indica la direzione come avanti, indietro o zero. Utilizzi direttamente l’intero quando occorrono periodi completi di dieci anni, per esempio per raggruppare programmi di lunga durata, verificare il superamento di una ricorrenza o descrivere la distanza tra documenti storici. Non lo consideri una stima decimale degli anni: un risultato pari a tre dichiara che sono trascorsi tre decenni completi di calendario, non che le date distino esattamente trent’anni senza mesi o giorni residui. Questa capacità non ricava date da frasi in linguaggio naturale, formati regionali, timestamp o dal momento presente. Tali esclusioni sono intenzionali, perché input espliciti rendono deterministiche le chiamate ripetute all’API. Una richiesta via API costa $0.002; la versione nel browser utilizza lo stesso calcolo puro e restituisce un risultato corrispondente.
Casi d'uso
Verificare un anniversario di lungo periodo
Stabilisca se un progetto, un’istituzione, un accordo o una raccolta ha completato uno specifico numero di anniversari decennali.
Confrontare documenti storici
Ottenga una distanza stabile con segno tra due date d’archivio senza dipendere dal fuso del computer o dall’orologio corrente.
Creare regole di reporting deterministiche
Classifichi i record per decenni completi di calendario con lo stesso comportamento nel browser e nei flussi API.
Domande frequenti
Che cosa indica il segno?
Un numero positivo indica che 'to' è successivo a 'from'; uno negativo indica che è precedente; zero significa che non li separa un decennio intero.
I decenni parziali vengono arrotondati?
No. Vengono contati solo gli anniversari completi di dieci anni di calendario e qualsiasi resto incompleto viene scartato.
Quale formato di data è accettato?
Entrambi i valori devono essere date ISO esplicite nel formato YYYY-MM-DD, con anni compresi tra 0001 e 9999.
Come viene gestito il 29 febbraio?
Se un anniversario decennale cade in un anno non bisestile, il 29 febbraio viene riportato al 28 febbraio per il confronto.
Il fuso orario o l’ora legale modificano il risultato?
No. Il calcolo usa un’aritmetica deterministica del calendario gregoriano in UTC e non consulta mai il fuso locale.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il calcolo può anche essere eseguito gratuitamente nel browser.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/date/diff-in-decades \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"from":"1985-07-25","to":"2026-07-25"}'const res = await fetch("https://api.kit.forhosting.com/date/diff-in-decades", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"from": "1985-07-25",
"to": "2026-07-25"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/diff-in-decades",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"from": "1985-07-25",
"to": "2026-07-25"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/diff-in-decades", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"from":"1985-07-25","to":"2026-07-25"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"from":"1985-07-25","to":"2026-07-25"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/diff-in-decades", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"from": "1985-07-25",
"to": "2026-07-25"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.diff_in_decades",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |