Numero di settimane in un mese
Calcoli quante settimane di calendario occupa il mese che contiene una specifica data ISO.
Esegui gratis nel browser
Inserisca una data nel formato YYYY-MM-DD e scelga il giorno iniziale della settimana. Il risultato considera la durata del mese, gli anni bisestili e le caselle vuote prima del primo giorno, indicando le righe richieste in un calendario tradizionale. L’aritmetica gregoriana fissa associata a UTC rende la risposta indipendente dall’orologio, dalle impostazioni locali e dall’ora legale.
Significato dell’estensione in settimane
Un mese non contiene un numero intero esatto di periodi di sette giorni e l’espressione «settimane in un mese» può assumere significati diversi. Questa calcolatrice conta le righe settimanali, cioè i blocchi contenenti almeno una data del mese selezionato. Prima individua il giorno della settimana del primo del mese, misura le caselle vuote precedenti in base all’inizio scelto, aggiunge i giorni effettivi e suddivide l’intervallo in righe di sette. Di conseguenza, un mese di 31 giorni può occupare cinque o sei settimane. Febbraio con 28 giorni ne occupa quattro se inizia insieme alla settimana scelta, ma può occuparne cinque se non coincide. La definizione corrisponde ai calendari mensili, ai turni del personale, ai programmi scolastici e alle griglie di rendicontazione. È volutamente diversa dalla divisione del numero dei giorni per sette, che descrive una durata ma non indica quanti blocchi visivi od operativi attraversa il mese.
Scelga esplicitamente il primo giorno
Il campo first_weekday controlla i confini settimanali. Usi 0 per domenica, 1 per lunedì e prosegua fino a 6 per sabato. Lunedì è il valore predefinito perché comune nei calendari aziendali orientati a ISO, ma nessuna convenzione è universale. Un piano commerciale che inizia di domenica e uno d’ufficio che inizia di lunedì possono produrre conteggi diversi per lo stesso mese. La risposta riporta l’impostazione numerica, il nome inglese corrispondente, il giorno in cui inizia il mese e il numero di caselle iniziali. Questi dati Le consentono di verificare il risultato ed evitare discrepanze silenziose tra sistemi. La data deve essere esplicita, completata con zeri e scritta come YYYY-MM-DD. Il giorno seleziona e convalida il mese; modificarlo restando nello stesso mese non cambia il conteggio. Le date impossibili, compresi i giorni bisestili errati, vengono rifiutate anziché normalizzate.
Aritmetica deterministica per l’automazione
Il calcolo usa il calendario gregoriano prolettico per gli anni da 0001 a 9999. Gli anni divisibili per quattro sono bisestili, tranne i secoli non divisibili anche per 400. I giorni settimanali derivano da operazioni intere: il codice non consulta l’ora, la rete, valori casuali né l’oggetto Date di JavaScript. L’indicazione UTC comunica quindi una data civile stabile e neutrale, senza spostamenti dovuti al server o al fuso dell’utente. Lo stesso JSON produce sempre la stessa uscita nel browser e nell’API, anche durante i cambi dell’ora legale. Usi il risultato per dimensionare sezioni settimanali, riservare righe stampabili, verificare calendari importati o creare contenitori mensili di allocazione. La risposta comprende inoltre durata e nome del mese, giorno iniziale e caselle precedenti, permettendo di conservare una spiegazione accanto a weeks_in_month. Le richieste API partono da $0.002; il browser esegue lo stesso nucleo deterministico.
Casi d'uso
Dimensionare una griglia mensile
Stabilisca se la vista richiede quattro, cinque o sei righe prima della visualizzazione o della stampa.
Creare blocchi settimanali del personale
Generi il numero corretto di sezioni per un turno mensile secondo la convenzione aziendale.
Convalidare i layout dei report
Verifichi che i report mensili includano ogni settimana di calendario contenente almeno una data.
Domande frequenti
Ogni mese ha quattro settimane?
No. Quattro settimane equivalgono esattamente a 28 giorni; quasi tutti i mesi sono più lunghi e occupano cinque o sei righe.
Che cosa significa first_weekday?
Definisce il confine settimanale: 0 indica domenica, 1 lunedì e i valori proseguono fino a 6 per sabato.
Perché un altro inizio cambia la risposta?
Spostando i confini, le prime e le ultime date possono distribuirsi su un numero diverso di righe.
Il giorno della data inserita influisce sul risultato?
Identifica e convalida il mese. Ogni data valida dello stesso mese e anno dà lo stesso conteggio con pari impostazione.
Come vengono gestiti anni bisestili e fusi orari?
Le regole gregoriane sono applicate con interi. Non avviene alcuna conversione di fuso, quindi la data civile resta stabile in UTC.
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/weeks-in-month \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-08-13"}'const res = await fetch("https://api.kit.forhosting.com/date/weeks-in-month", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-08-13"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/weeks-in-month",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-08-13"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/weeks-in-month", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-08-13"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-08-13"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/weeks-in-month", 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": "2026-08-13"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.weeks_in_month",
"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. |