Aggiungere mesi a una data
Aggiunga mesi interi a una data e ottenga il giorno successivo sul calendario: il 31 gennaio 2024 più 1 mese dà il 29 febbraio 2024, perché un giorno che non esiste passa all'ultimo del mese. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Data
- 2024-01-31
- Mesi
- 1
- Risultato
- 2024-02-29
- Anno
- 2024
- Mese
- 2
- Giorno
- 29
Questo calcolatore per aggiungere mesi a una data prende una singola data del calendario gregoriano in forma AAAA-MM-GG e un numero di mesi interi non negativo, quindi restituisce il giorno di calendario che cade quel numero di mesi dopo la base. I controlli classici includono 2024-01-31 più un mese che ricade sul 2024-02-29 in un anno bisestile, 2023-01-31 più un mese che ricade sul 2023-02-28 in un anno comune, e 2024-03-15 più tre mesi che ricade sul 2024-06-15 senza alcun riporto. Il motore usa solo aritmetica gregoriana prolettica deterministica: verifica che il giorno base esista davvero sul calendario, sposta anno e mese del conteggio richiesto, riporta il giorno all'ultimo valido del mese target quando l'originale lo supererebbe, e restituisce un risultato strutturato senza chiamate di rete, campionamento casuale o l'orologio dell'host.
Cosa significa l'aggiunta di mesi e cosa contiene la risposta
Aggiungere mesi interi di calendario risponde a una domanda diversa dall'aggiungere un numero fisso di giorni o contare periodi lavorativi: fa avanzare anno e mese sul calendario civile gregoriano mantenendo lo stesso giorno del mese quando quel giorno esiste, e riportandolo all'ultimo giorno del mese target quando non esiste. Fornite una data base come stringa rigorosa AAAA-MM-GG e un valore months intero non negativo; zero lascia la data invariata, uno passa allo stesso giorno nominale del mese successivo quando possibile, e valori maggiori attraversano automaticamente i confini d'anno.
I casi classici di fine mese sono espliciti: il 31 gennaio più un mese diventa il 28 o il 29 febbraio a seconda dell'anno bisestile, il 31 marzo più un mese diventa il 30 aprile, e il 31 maggio più un mese diventa il 30 giugno.
Se vi servono sottrazione di giorni, giorni lavorativi, conversione epoch, analisi multi-formato o numeri di settimana ISO, usate quegli strumenti dedicati; questa pagina risponde solo alla data gregoriana successiva dopo l'aggiunta di mesi interi a una base ISO validata con riporto all'ultimo giorno del mese.
Dove si inserisce lo spostamento di mesi in fatturazione, rinnovi e software
I team operativi e finanziari aggiungono mesi quando un abbonamento si rinnova ogni tre mesi di calendario, quando la scadenza di una fattura è definita come un mese dopo l'emissione, o quando una finestra di garanzia è dodici mesi dopo una data di spedizione relativa a una data base fissa piuttosto che a un orologio in tempo reale.
Gli analisti che costruiscono finestre di coorte usano lo stesso spostamento per etichettare periodi di osservazione che iniziano in un giorno noto e finiscono un numero fisso di mesi dopo, evitando errori di uno a fine mese e nei giorni bisestili. Educatori e redattori di standard usano lo strumento per dimostrare il comportamento di riporto come 2024-01-31 più un mese in un anno bisestile rispetto a 2023-01-31 più un mese in un anno comune senza affidarsi a numeri seriali di foglio di calcolo che differiscono tra i prodotti.
Abbinatelo agli strumenti di sottrazione di giorni, conversione epoch, normalizzazione delle date o helper per settimane ISO quando vi servono passaggi di calendario correlati, e ad altri strumenti gratuiti e deterministici quando state assemblando un piccolo laboratorio di utility per le date.
Casi d'uso
Cicli di abbonamento e fatturazione
Proiettate il prossimo rinnovo o la scadenza di fattura N mesi dopo una data di emissione validata, con i giorni di fine mese riportati correttamente.
Riporti di fine mese e giorno bisestile
Verificate che il 31 gennaio più un mese ricada sul 29 febbraio solo negli anni bisestili, e sul 28 febbraio negli anni comuni, senza stranezze di Date.
Domande frequenti
Come viene definita la data successiva?
Il motore aggiunge un numero intero non negativo di mesi di calendario gregoriano a una base AAAA-MM-GG validata, mantenendo lo stesso giorno del mese quando possibile e riportandolo all'ultimo giorno valido del mese target altrimenti.
Cosa succede con fine mese e anni bisestili?
Le lunghezze dei mesi e i giorni bisestili vengono validati e applicati. Per esempio, 2024-01-31 più 1 mese è 2024-02-29, mentre 2023-01-31 più 1 mese è 2023-02-28. Il campo clamped è vero quando il giorno è stato ridotto.
Quali formati di data e valori di mesi sono accettati?
Solo date di calendario rigorose AAAA-MM-GG per la base, e un valore months intero da 0 a 119988.
Converte fusi orari o usa l'orologio attuale?
No. Mappa solo una data di calendario validata più N mesi interi con aritmetica pura. Non c'è oggetto Date, spostamento di fuso orario o dipendenza da "oggi".
Si possono sottrarre mesi?
No. Il calcolatore aggiunge soltanto: accetta zero o un numero intero positivo di mesi, e una quantità negativa viene rifiutata. Con zero la data resta identica.
Strumenti correlati
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/add-months \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2024-01-31","months":1}'const res = await fetch("https://api.kit.forhosting.com/date/add-months", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2024-01-31",
"months": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/add-months",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2024-01-31",
"months": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/add-months", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2024-01-31","months":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2024-01-31","months":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/add-months", 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
{
"date": "2024-01-31",
"months": 1
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.add_months",
"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.
Limiti
year_min | 1 |
year_max | 9999 |
months_min | 0 |
months_max | 119988 |
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. |
Note tecniche
Cosa significa l'aggiunta di mesi e cosa contiene la risposta
Il calcolatore verifica che il giorno base sia un vero giorno di calendario — 29 febbraio solo negli anni bisestili, trenta giorni in aprile, mai il giorno trentadue — quindi restituisce la data base normalizzata, il conteggio months usato, il risultato successivo come result in forma AAAA-MM-GG, i campi year, month e day del risultato, un booleano clamped vero quando il giorno è stato ridotto, days_in_result_month per la lunghezza del mese target, i componenti base base_year, base_month e base_day per un facile inoltro, e un breve promemoria della formula. Non c'è un inizio settimana dipendente dalla lingua, nessuna approssimazione in virgola mobile della lunghezza di un mese, e nessun affidamento all'oggetto Date dell'host: o l'input è un vero giorno di calendario con un conteggio di mesi nell'intervallo e la data successiva è completamente determinata, oppure la richiesta fallisce con invalid_input. I casi rifiutati includono un campo date o months mancante, forme errate come 2024/01/31, mesi impossibili, giorni inesistenti come 2023-02-29, conteggi di mesi negativi, e risultati il cui anno cadrebbe fuori dalla finestra supportata da uno a 9999.
Come vengono letti la data e il conteggio dei mesi e come il risultato resta riproducibile
La stringa deve corrispondere a quattro cifre, un trattino, due cifre, un altro trattino e due cifre; gli spazi iniziali o finali vengono rimossi, ma le date parziali, il solo giorno ordinale dell'anno e i nomi dei mesi non vengono espansi qui. Dopo l'analisi, l'anno deve essere compreso tra 1 e 9999, il mese tra 1 e 12, e il giorno tra 1 e la vera lunghezza di quel mese in quell'anno, con gli anni bisestili che seguono la regola gregoriana: divisibili per quattro tranne i secoli non divisibili per quattrocento. Internamente il motore converte l'anno e il mese civili in un indice di mese a base zero con anno per dodici più mese meno uno, aggiunge il conteggio di mesi intero, quindi recupera l'anno e il mese target e riporta il giorno originale al numero di giorni di quel mese target — aritmetica a interi pura, stabile bit per bit tra i runtime. Il campo base preferito è date, ma sono accettati gli alias iso_date, d, value e base così fogli di calcolo, query string e form tipizzati possono riusare lo stesso contratto senza rinominare colonne. Il campo months, con alias n, count e add, deve essere un intero da 0 a 119988; sono ammessi segni più iniziali facoltativi nelle stringhe numeriche, mentre decimali, negativi e token non numerici vengono rifiutati con un messaggio chiaro così una cella sbagliata non diventa una data successiva sbagliata. Abbinate l'esecuzione gratuita nel browser di questa pagina all'API a pagamento quando vi serve la stessa data spostata di mesi dentro una pipeline automatizzata.
Dove si inserisce lo spostamento di mesi in fatturazione, rinnovi e software
In questa pagina il lavoro viene svolto interamente nel browser; tramite l'API ogni ricerca riuscita costa $0.002, la convalida fallita non viene addebitata e nulla viene conservato dopo la restituzione della risposta. Questa divisione — esplorazione interattiva gratuita e API a pagamento identica — corrisponde al resto del catalogo tier A del KIT e permette di passare da un controllo occasionale a una pipeline senza cambiare il risultato matematico.
Casi di integrazione
Fixture di test deterministiche
Generate stringhe ISO riproducibili con mesi spostati per unit test, controlli di proprietà e asserzioni CI senza dipendere da Date o dall'orologio dell'host.
Domande tecniche
Quanto costa il calcolatore per aggiungere mesi a una data?
È gratuito nel browser su questa pagina. Tramite l'API una richiesta riuscita costa $0.002; gli input non validi non vengono addebitati.