Calcolatore delle fasi lunari
Inserisca una data e veda la fase della Luna: il 1° gennaio 2026 la Luna ha 12,421 giorni, è illuminata al 93,9% e si trova in gibbosa crescente. Il calcolo usa il mese lunare medio di 29,530588853 giorni. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Data
- 2026-01-01
- Età lunare (giorni)
- 12,421
- Illuminazione (%)
- 93,9
- Fase
- Gibbosa crescente
- Ciclo lunare (giorni)
- 29,530588853
Data una data ISO, restituisce l'età della Luna in giorni trascorsi da un novilunio noto, la sua frazione illuminata come percentuale e il nome della fase, usando il mese sinodico medio di 29.530588853 giorni.
Come si calcola la fase della Luna
La Luna passa da nuova a piena e torna nuova in un mese sinodico medio di 29,530588853 giorni. Il calcolatore conta i giorni tra una luna nuova nota e la sua data, valutata alle 12:00 UTC, e tiene solo il resto all'interno del ciclo in corso. Quel resto è l'età della Luna. La parte illuminata del disco segue una curva regolare di quell'età, vicina allo 0% con la luna nuova e con il massimo del 100% vicino alla luna piena. Il 1° gennaio 2026 l'età è di 12,421 giorni e l'illuminazione del 93,9%.
A cosa serve il risultato e quali sono i suoi limiti
Il nome della fase deriva dalla divisione del ciclo in otto fasce di durata simile, dalla luna nuova attraverso le fasi di falce, quarto e gibbosa, fino a tornare all'inizio. Per questo è una fonte affidabile per calendari, almanacchi, cruscotti e icone lunari di ogni giorno del mese. Si tratta di un'approssimazione di fase media che ignora l'orbita leggermente ellittica della Luna, quindi fase e illuminazione possono scostarsi di circa un giorno. Per posizioni astronomiche precise servono vere effemeridi.
Domande frequenti
Quale periodo sinodico usa?
Il mese sinodico medio di 29.530588853 giorni, ancorato a un novilunio di riferimento del 2000-01-06 alle 18:14 UTC.
Quanto sono accurate la fase e l'illuminazione?
È un modello a fase media che ignora l'eccentricità orbitale, quindi i risultati sono accurati entro circa un giorno, ideali per calendari e dashboard.
Quali sono le otto fasi della Luna in ordine?
Luna nuova, falce crescente, primo quarto, gibbosa crescente, luna piena, gibbosa calante, ultimo quarto e falce calante. Ciascuna copre circa un ottavo del mese lunare, e dopo l'ultima il ciclo riparte dalla luna nuova.
Che cosa significa l'età della Luna?
È il numero di giorni trascorsi dall'ultima luna nuova, da 0 fino a circa 29,53 prima che il ciclo ricominci. Il 1° gennaio 2026 l'età è di 12,421 giorni, il che colloca la Luna nella fase gibbosa crescente.
A che ora del giorno viene calcolata la fase?
Ogni data viene valutata alle 12:00 UTC, cioè a mezzogiorno nel tempo universale. Così c'è una sola risposta per data, e un calendario mostra la stessa fase e la stessa illuminazione ovunque venga aperto.
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/dev/moon-phase \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"date":"2026-01-01"}'const res = await fetch("https://api.kit.forhosting.com/dev/moon-phase", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"date": "2026-01-01"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/moon-phase",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"date": "2026-01-01"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/moon-phase", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"date":"2026-01-01"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"date":"2026-01-01"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/moon-phase", 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-01-01"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.moon_phase",
"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. |
Note tecniche
Il modello dell'età basato sul mese sinodico
L'illuminazione si ricava da quell'età come (1 - cos(2*pi*age/SYNODIC_DAYS)) / 2 * 100, una curva regolare che tocca il 100% in prossimità del plenilunio e circa lo 0% al novilunio. Valuta ogni data alle 12:00 UTC, prende i millisecondi trascorsi dall'epoca, divide per 86400000 per ottenere i giorni e riduce quel valore modulo la lunghezza sinodica; un resto negativo viene riportato in avanti aggiungendo un periodo completo, così che age_days sia sempre in [0, 29.53). Per il 2026-01-01 questo restituisce age_days 12.421 e illumination_percent 93.9, corrispondente esattamente all'output di riferimento pubblicato.
Come viene scelto il nome della fase
Questa è un'approssimazione a fase media: ignora l'eccentricità orbitale della Luna, quindi il nome della fase e l'illuminazione sono accurati entro circa un giorno, il che è più che sufficiente per calendari, dashboard e contenuti, ma non per il lavoro effemeridico di precisione. La stringa della fase viene scelta confrontando age_days con otto soglie fisse, ciascuna pari a circa un ottavo del mese sinodico. Le età inferiori a 1.84566 sono 'new', poi 'waxing_crescent' sotto 5.53699, 'first_quarter' sotto 9.22831, 'waxing_gibbous' sotto 12.91963, 'full' sotto 16.61096, 'waning_gibbous' sotto 20.30228, 'last_quarter' sotto 23.99361 e 'waning_crescent' sotto 27.68493; qualsiasi valore pari o superiore a quest'ultimo confine torna a 'new'. Poiché l'età per il 2026-01-01 è 12.421, ricade nella fascia waxing_gibbous.
Validazione della data e arrotondamento
La data deve essere una stringa in rigoroso formato YYYY-MM-DD, verificata con regex; il mese deve essere da 1 a 12 e il giorno da 1 a 31, e il calendario reale viene verificato con un controllo UTC prima di qualsiasi calcolo, così che una data impossibile come 2026-02-30, che il tipo Date di JavaScript farebbe scivolare silenziosamente a marzo, venga respinta come invalid_input anziché accettata di nascosto. Il parametro facoltativo decimals vale 3 per impostazione predefinita e deve essere un intero da 0 a 6. age_days viene arrotondato half-up a quella precisione, mentre illumination_percent viene sempre arrotondato a un solo decimale indipendentemente da decimals. La risposta riporta anche la data di input e la costante synodic_days, e qualsiasi valore intermedio non finito solleva invalid_input.
Casi di integrazione
Calendari e widget da almanacco
Mostri la fase e l'illuminazione per ogni giorno di un mese, pilotando le icone lunari dal nome deterministico della fase.
Fotografia e pianificazione all'aperto
Interroghi illumination_percent su un intervallo di date per trovare le notti più buie o più luminose per l'astrofotografia o il lavoro sul campo.
Automazione di contenuti e programmazione
Elabori date in blocco tramite l'API per etichettare post, eventi o guide di pesca/giardinaggio con la corretta fase lunare.
Domande tecniche
Quali formati di data sono accettati?
Solo stringhe rigorose YYYY-MM-DD. Le date impossibili come 2026-02-30 vengono respinte come invalid_input anziché fatte scivolare avanti.
Quali sono i possibili valori della fase?
new, waxing_crescent, first_quarter, waxing_gibbous, full, waning_gibbous, last_quarter e waning_crescent, scelti in base alle soglie di età.
È gratuito e quanto costa l'API?
Il widget nella pagina è gratuito (tier A) ed esegue lo stesso motore deterministico; le chiamate API vengono fatturate per ogni richiesta riuscita a partire da $0.002.