Zum Inhalt springen
🛠️ToolsShed

Moon Phase Calculator

Berechne die aktuelle Mondphase, Ausleuchtungsprozentsatz und Mond-Zyklus-Information für jedes Datum.

Über dieses Tool

Der Mondphasen-Rechner hilft Ihnen, die aktuelle Mondphase, den Illuminationsprozentsatz und detaillierte Informationen zum Mondzyklus für jedes beliebige Datum—Vergangenheit, Gegenwart oder Zukunft—zu ermitteln. Das Verständnis des Monderscheinungsbildes und seiner Position in seinem 29,5-Tage-Zyklus ist wertvoll für Astronomie-Enthusiasten, Gärtner, die Mondkalender befolgen, Fotografen, die Nachtaufnahmen planen, und jeden, der neugierig auf das Verhalten unseres natürlichen Satelliten ist.

Geben Sie einfach ein beliebiges Datum mit dem Kalender-Picker ein, und das Tool zeigt sofort den Namen der Mondphase, wie viel des Monddatenträgers beleuchtet ist, die Anzahl der Tage im aktuellen Zyklus und das Datum des nächsten Vollmonds oder Neumonds. Sie können das Monderscheinungsbild an Ihrem Geburtstag erforschen, Bedingungen für bevorstehende astronomische Ereignisse überprüfen oder verfolgen, wie Mondzyklen Aktivitäten wie Pflanzen oder Angeln beeinflussen.

Dieser Rechner nutzt astronomische Algorithmen, um Mondpositionen mit hoher Genauigkeit zu berechnen, wodurch er für Bildungsprojekte, kreative Planung und gelegentliche Sternenbeobachtung zuverlässig ist. Beachten Sie, dass Illuminationsprozentsätze ungefähre Werte sind; die tatsächliche Sichtbarkeit hängt von Ihrem Standort, dem lokalen Wetter und der Tageszeit ab.

Häufig gestellte Fragen

Code-Implementierung

import math
from datetime import date, datetime

def calculate_moon_phase(year: int, month: int, day: int) -> dict:
    """
    Calculate moon phase using the Conway algorithm.
    Returns phase name, illumination percentage, and age in days.
    """
    # Julian date calculation
    if month <= 2:
        year -= 1
        month += 12

    A = int(year / 100)
    B = 2 - A + int(A / 4)
    julian = int(365.25 * (year + 4716)) + int(30.6001 * (month + 1)) + day + B - 1524.5

    # Days since known new moon (Jan 6, 2000)
    known_new_moon = 2451549.5
    lunation = 29.53058868

    age = (julian - known_new_moon) % lunation
    illumination = (1 - math.cos(2 * math.pi * age / lunation)) / 2

    # Phase name
    phases = [
        (0.03, "New Moon"), (0.22, "Waxing Crescent"), (0.28, "First Quarter"),
        (0.47, "Waxing Gibbous"), (0.53, "Full Moon"), (0.72, "Waning Gibbous"),
        (0.78, "Last Quarter"), (0.97, "Waning Crescent"), (1.00, "New Moon")
    ]
    fraction = age / lunation
    phase_name = next(name for threshold, name in phases if fraction <= threshold)

    return {
        "age_days": round(age, 2),
        "illumination_pct": round(illumination * 100, 1),
        "phase": phase_name,
        "fraction": round(fraction, 4)
    }

result = calculate_moon_phase(2024, 1, 15)
print(f"Phase: {result['phase']}")
print(f"Age: {result['age_days']} days")
print(f"Illumination: {result['illumination_pct']}%")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.