[JAVA] Zellers Beamter (fragt nach dem Tag)

public class Main {

    public static void main(String[] args) {
        System.out.println(calc(2018, 3, 28)); //Mittwoch
        System.out.println(calc(2018, 2, 28)); //Mittwoch
        System.out.println(calc(2018, 1, 28)); //Sonntag
    }

    public static String calc(
            double y,
            double m,
            double d) {

        double M = 0;
        if (m < 3) {
            M = m + 12;
            y = y - 1;
        } else {
            M = m;
        }

        int C = (int) (y / 100);
        int Y = (int) (y % 100);

        double R = 0;

        if (y >= 1582) {
            R = (C / 4) - C - C;
        } else if (y >= 4) {
            R = 5 - C;
        } else {
            throw new IllegalArgumentException("year >= 4");
        }

        Double h = (d + ((26 * (M + 1)) / 10) + Y + (Y / 4) + R) % 7;

        String[] weekday = new String[] {
                "Boden",
                "Tag",
                "Mond",
                "Feuer",
                "Wasser",
                "Holz",
                "Geld"
        };
        return weekday[h.intValue()];

    }

}

Recommended Posts

Zellers Beamter (fragt nach dem Tag)
[Java] Ermittelt den Tag eines bestimmten Tages
Wie komme ich zum heutigen Tag?
[Ruby] Code zur Anzeige des Tages
[Ubuntu 20.04] Zeigt den Tag auf dem Datum / der Uhr an
Ausgabe des Tages mit der Ruby's Date-Klasse
[Java1.8 +] Mit LocalDate das Datum des nächsten × Tages abrufen
Ändern Sie das Gespräch je nachdem, welcher Tag heute ist
Verstehe die offizielle Probe Coffee of Dagger2
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Rufen Sie den ersten Wochentag im aktuellen Gebietsschema ab (welcher Tag ist heute?)
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)
Über den offiziellen Startleitfaden für Spring Framework
Vergleichen Sie die Geschwindigkeit der for-Anweisung und der erweiterten for-Anweisung.
Der offizielle Name von Spring MVC ist Spring Web MVC
[Java] Anzeigen der von LocalDate und DateTimeformatter erfassten Tage auf Japanisch
[Für Anfänger] DI ~ Die Grundlagen von DI und DI im Frühjahr ~
[Für Anfänger] Verstehen Sie schnell die Grundlagen von Java 8 Lambda