Per esprimere la differenza tra due date in anni, mesi e giorni di calendario, conta prima i mesi di calendario e poi i giorni rimanenti. Questa guida a Numbers usa date di pubblicazione sintetiche e una regola esplicita per la fine del mese, così puoi verificare il risultato.
Per esempio, dal 18 maggio 2022 al 24 settembre 2025 si ottengono 3 anni, 4 mesi e 6 giorni con il metodo seguente. Creerai un foglio di calcolo riutilizzabile che gestisce anche febbraio, gli anni bisestili e date come il 31 gennaio.
Scegliere il significato della differenza di calendario
Per calcolare una differenza di calendario servono una data iniziale e una regola per procedere tra i mesi. Dividere i giorni trascorsi per 365 e poi per 30 non consente di rispettare i confini del calendario: i mesi e gli anni hanno durate diverse. La documentazione dell'API Date di TC39 esplicita questa distinzione spiegando perché, per impostazione predefinita, le differenze tra date sono espresse in giorni, a meno che non venga richiesta un'unità più grande. Documentazione di Temporal.PlainDate.
Questa guida adotta la convenzione seguente per le date del calendario gregoriano moderno:
- Procedi dalla data più vicina nel tempo a quella più lontana.
- Individua il maggiore scarto in mesi interi la cui data di ancoraggio non supera la data finale.
- Mantieni il numero del giorno iniziale se esiste nel mese di destinazione; altrimenti usa l'ultimo giorno di quel mese.
- Esprimi ogni 12 mesi come un anno, poi conta i giorni dalla data di ancoraggio a quella finale.
Con questa convenzione, dal 31 gennaio al 28 febbraio 2025 passa un mese. Dal 31 gennaio al 30 marzo 2025 passa un mese e 30 giorni: l'ancoraggio a due mesi sarebbe il 31 marzo, che supera la data finale. Questi risultati dipendono dalla regola scelta; non sono definizioni universali di un mese.
Usa il conteggio dei giorni trascorsi, senza includere entrambi gli estremi. Due date uguali producono quindi zero anni, zero mesi e zero giorni. Se devi contare quante voci di calendario datate rientrano in un intervallo, il calcolo è diverso.
Tenere separate le date civili e i timestamp
Una data di pubblicazione come 2025-09-24 è una data civile: un anno, un mese e un giorno in un calendario. Non specifica un'ora né identifica un istante. Un timestamp come 2025-09-24T00:30:00+02:00 include un'ora e uno scarto numerico rispetto all'UTC, quindi può identificare un istante. RFC 3339 definisce la sintassi corrispondente per date complete e date e orari. RFC 3339: Data e ora su Internet: timestamp.
Uno scarto come +02:00 descrive la relazione con l'UTC. Un fuso orario denominato, come Europe/Paris, fornisce le regole per convertire gli istanti in orari locali e viceversa; lo scarto applicabile può cambiare. RFC 9557 distingue questi concetti e spiega perché il solo scarto non fornisce le regole necessarie per i calcoli con il calendario locale. RFC 9557: Data e ora su Internet: timestamp con informazioni aggiuntive.
Per questo foglio di calcolo, inserisci direttamente le date di pubblicazione desiderate. Se la fonte contiene timestamp, decidi prima quale fuso orario denominato definisce il giorno di pubblicazione e converti entrambi i timestamp in date in quel fuso. Per esempio, 2025-09-24T00:30:00+02:00 corrisponde allo stesso istante di 2025-09-23T22:30:00Z; scegliere la data visualizzata prima di decidere il fuso di riferimento può modificare l'input di un giorno.
Creare il foglio di calcolo per la differenza tra date in Numbers
Ti servono Numbers sul Mac e una tabella con le colonne da A a J e almeno due righe. Usa la riga 1 per le etichette e la riga 2 per il calcolo. Le formule qui sotto usano i nomi delle funzioni in inglese e la virgola come separatore.
Per inserire ogni formula, seleziona la cella di destinazione, digita o incolla la formula iniziando con = e premi Return. Apple documenta che digitando il segno uguale si apre l'Editor formule; nel Browser funzioni è disponibile la guida alle funzioni. Calcolare valori usando i dati nelle celle della tabella in Numbers sul Mac.
Inserire date iniziale e finale senza ambiguità
Etichetta A1 come Data iniziale e B1 come Data finale. Inserisci le seguenti date di pubblicazione sintetiche:
| Cella | Formula | Data prevista |
|---|---|---|
A2 |
=DATE(2022,5,18) |
18 maggio 2022 |
B2 |
=DATE(2025,9,24) |
24 settembre 2025 |
L'uso di DATE(year,month,day) evita ambiguità tra le interpretazioni regionali delle stringhe di date. Apple consiglia espressamente questa funzione per interpretare le date in modo coerente con le impostazioni regionali. Inserisci date di calendario valide, con il numero corretto di giorni per ogni mese. DATE.
Prima di procedere, verifica che la data finale sia uguale o successiva a quella iniziale. Questo foglio calcola deliberatamente una differenza in avanti; non definisce periodi di calendario negativi.
Trovare l'ultima data di ancoraggio del calendario prima della data finale
Inserisci queste etichette e formule nella riga 2, nell'ordine indicato:
| Cella | Etichetta della riga 1 | Formula della riga 2 |
|---|---|---|
C2 |
Mesi candidati |
=(YEAR(B2)-YEAR(A2))*12+MONTH(B2)-MONTH(A2) |
D2 |
Mesi interi |
=C2-IF(DATE(YEAR(B2),MONTH(B2),MIN(DAY(A2),DAY(EOMONTH(B2,0))))>B2,1,0) |
E2 |
Inizio del mese di ancoraggio |
=EDATE(DATE(YEAR(A2),MONTH(A2),1),D2) |
F2 |
Data di ancoraggio |
=DATE(YEAR(E2),MONTH(E2),MIN(DAY(A2),DAY(EOMONTH(E2,0)))) |
La prima formula calcola la distanza tra le posizioni di anno e mese. Le funzioni YEAR e MONTH di Apple estraggono questi componenti dai valori di data. YEAR, MONTH.
La seconda formula verifica una data di ancoraggio nel mese finale. Il suo giorno è il minore tra il giorno della data iniziale e l'ultimo giorno di quel mese. Se questa data candidata supera la data finale, la formula sottrae un mese. Questa correzione condizionale usa il comportamento documentato di IF. IF.
Le formule successive costruiscono la data di ancoraggio effettiva. EDATE sposta il primo giorno del mese iniziale dell'intervallo calcolato, evitando un giorno non valido in questa fase intermedia. EDATE.
Il foglio applica poi esplicitamente la regola di fine mese: DAY estrae il numero del giorno, EOMONTH restituisce l'ultima data del mese di destinazione e MIN seleziona il numero minore dei due giorni. In questo modo, la formula rende visibile il trattamento dei mesi più brevi. DAY, EOMONTH, MIN.
Esprimere il risultato in anni, mesi e giorni
Completa il foglio con queste formule:
| Cella | Etichetta della riga 1 | Formula della riga 2 |
|---|---|---|
G2 |
Anni |
=QUOTIENT(D2,12) |
H2 |
Mesi |
=MOD(D2,12) |
I2 |
Giorni |
=DATEDIF(F2,B2,"D") |
J2 |
Differenza di calendario |
=G2&" years, "&H2&" months, "&I2&" days" |
QUOTIENT fornisce il risultato della divisione in numeri interi e MOD fornisce il resto, convertendo il totale dei mesi interi in anni e mesi rimanenti. QUOTIENT, MOD.
Per le date di esempio, D2 dovrebbe essere 40 e F2 dovrebbe rappresentare il 18 settembre 2025. I sei giorni tra questa data di ancoraggio e il 24 settembre completano il risultato: 3 anni, 4 mesi e 6 giorni. Per semplicità, la formula testuale usa etichette fisse al plurale; le colonne numeriche separate restano disponibili per altri calcoli.
Verificare le fini dei mesi e gli anni bisestili
Usa queste coppie di date sintetiche per verificare la convenzione del foglio. Sostituisci solo le formule in A2 e B2, mantenendo tutte le altre formule:
| Data iniziale | Data finale | Anni, mesi e giorni previsti | Data di ancoraggio |
|---|---|---|---|
| 18 maggio 2022 | 24 settembre 2025 | 3, 4, 6 | 18 settembre 2025 |
| 31 gennaio 2025 | 28 febbraio 2025 | 0, 1, 0 | 28 febbraio 2025 |
| 31 gennaio 2024 | 29 febbraio 2024 | 0, 1, 0 | 29 febbraio 2024 |
| 29 febbraio 2024 | 28 febbraio 2025 | 1, 0, 0 | 28 febbraio 2025 |
| 31 gennaio 2025 | 30 marzo 2025 | 0, 1, 30 | 28 febbraio 2025 |
| 24 settembre 2025 | 24 settembre 2025 | 0, 0, 0 | 24 settembre 2025 |
Questi esempi sono stati calcolati secondo la regola indicata. L'algoritmo di ancoraggio sottostante è stato verificato con un calcolo Python deterministico, che ha incluso 10.000 coppie di date generate; l'interfaccia di Numbers non è stata eseguita.
Verifica il risultato ricostruendo il percorso: prendi la data iniziale originale, spostala del totale di mesi indicato in D2 applicando la regola di fine mese specificata, poi aggiungi i giorni indicati in I2. Dovresti ottenere la data finale. Calcola sempre l'ancoraggio mensile a partire dalla data iniziale originale: spostandoti ripetutamente di un mese, dopo febbraio potresti perdere il giorno iniziale.
Perché non combinare tre risultati di DATEDIF?
Apple documenta le opzioni di DATEDIF per anni, mesi senza considerare gli anni e giorni senza considerare mesi e anni. L'opzione "MD" applica un calcolo specifico del numero di giorni che comporta la sostituzione dei mesi. Non va quindi considerata equivalente ai giorni che restano dopo la regola di fine mese scelta. Questo foglio usa "D" solo tra la data di ancoraggio esplicita e la data finale. DATEDIF.
Come l'operazione si traduce in un'API per le date
Per il software che implementa questo calcolo, TC39 documenta un tipo di dato che rappresenta solo la data, Temporal.PlainDate, e un'operazione di differenza consapevole del calendario. Richiedere until con largestUnit: 'year' produce una durata espressa in anni e unità inferiori; lasciando le opzioni predefinite, la differenza viene espressa in giorni. La documentazione descrive anche l'addizione di mesi con limitazione al mese di destinazione e rifiuta le differenze tra date che usano sistemi di calendario diversi, a meno che non vengano convertite in un calendario comune. Documentazione di Temporal.PlainDate.
Queste scelte nell'API confermano le decisioni fondamentali per il foglio di calcolo: identificare input che rappresentano solo date, scegliere il calendario, specificare l'unità più grande e mantenere una data di ancoraggio per interpretare i mesi. Gli standard sulle stringhe di date descrivono le rappresentazioni; scegliere una rappresentazione da solo non determina la regola di fine mese per il calcolo.
Risolvere i risultati inattesi prima di usare il valore
Se una formula genera un errore, seleziona l'indicatore di errore per leggere il messaggio; la guida di Numbers di Apple documenta questo passaggio diagnostico. Controlla i riferimenti alle celle e usa il Browser funzioni per inserire gli argomenti, se la tua installazione richiede separatori diversi nelle formule. Calcolare valori usando i dati nelle celle della tabella in Numbers sul Mac.
Se il calcolo sembra plausibile ma differisce da quello di un altro strumento, confronta la sua regola di fine mese con quella di questo foglio. Controlla anche se l'altro strumento include entrambi gli estremi, usa timestamp invece di date civili o arrotonda il risultato. Escludi da questo calcolo in avanti le date invertite e i valori vuoti, invece di sostituire gli errori con zero.
Per confrontare le date di pubblicazione in modo riutilizzabile, conserva la data iniziale, quella finale e la data di ancoraggio insieme alla formulazione finale. Insieme rendono un risultato come «3 anni, 4 mesi e 6 giorni» riconducibile a un calcolo di calendario specifico.
Fonti
- Calcolare valori usando i dati nelle celle della tabella in Numbers sul Mac — Apple.
- DATE — Apple.
- YEAR — Apple.
- MONTH — Apple.
- IF — Apple.
- EDATE — Apple.
- DAY — Apple.
- EOMONTH — Apple.
- MIN — Apple.
- QUOTIENT — Apple.
- MOD — Apple.
- DATEDIF — Apple.
- Temporal.PlainDate — Ecma TC39.
- RFC 3339: Data e ora su Internet: timestamp — RFC Editor.
- RFC 9557: Data e ora su Internet: timestamp con informazioni aggiuntive — RFC Editor.