[JAVA] Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen

Premium Freitag, der am Freitag, 24. Februar 2017 begann. Es ist ein System mit Vor- und Nachteilen, aber es ist trotzdem gut, mehr Urlaub zu haben. Haben Sie alle an Ihrem ersten Premium-Freitag um 15:00 Uhr das Büro verlassen? __ Ich konnte nicht (´ ・ ω ・ `) __ Ich konnte das Büro nicht einmal pünktlich verlassen (´ ・ ω ・ `)

Also (?) Habe ich eine Methode zur Berechnung von Premium Friday erstellt. Bitte benutzen Sie es.


import java.util.Calendar;

public class PremiumFridayUtils {
    
    /**
     *Finden Sie den Premium-Freitagstag des angegebenen Monats. Seit Monaten ohne Premium Freitag-Rückgabe 1.
     * @param Jahr Jahr(1..*)
     * @param Monat Monat(1..12)
     * @Rückgabe Premium Freitag Tag des angegebenen Monats(1..31)
     */
    public static int getPremiumFriday(int year, int month) {
        //Das Jahr muss eine positive Zahl sein und der Monat muss zwischen 1 und 12 liegen.
        if (year < 1 || month < 1 || month > 12) {
            throw new IllegalArgumentException();
        }
        
        //Der Premium-Freitag findet nach Februar 2017 statt.
        if (year < 2017 || (year == 2017 && month == 1)) {
            return -1;
        }
        
        //Es wird beurteilt, ob es Freitag ist, ein Tag ab dem letzten Tag des Zielmonats, und der erste Tag, der als Freitag beurteilt wird
        //Letzten Freitag im Monat=Es wird ein Premium-Freitag.
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.MONTH, month - 1);
        calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
        
        while (calendar.get(Calendar.DAY_OF_WEEK) != Calendar.FRIDAY) {
            calendar.add(Calendar.DATE, -1);
        }
        
        return calendar.get(Calendar.DAY_OF_MONTH);
    }
        
    public static void main(String[] args) {
        // 2017-Ausgabe für 2019 Premium Friday.
        for (int year : new int[]{2017, 2018, 2019}) {
            for (int month = 1; month <= 12; month++) {
                int day = PremiumFridayUtils.getPremiumFriday(year, month);
                if (day != -1) {
                    System.out.printf("%d-%02d-%02d\n", year, month, day);
                }
            }
        }
    }
}
/*
2017-02-24
2017-03-31
2017-04-28
2017-05-26
2017-06-30
2017-07-28
2017-08-25
2017-09-29
2017-10-27
2017-11-24
2017-12-29
2018-01-26
2018-02-23
2018-03-30
2018-04-27
2018-05-25
2018-06-29
2018-07-27
2018-08-31
2018-09-28
2018-10-26
2018-11-30
2018-12-28
2019-01-25
2019-02-22
2019-03-29
2019-04-26
2019-05-31
2019-06-28
2019-07-26
2019-08-30
2019-09-27
2019-10-25
2019-11-29
2019-12-27
*/

Recommended Posts

Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen
Erstellt eine Methode zum Anfordern von Premium Friday (Java 8-Version)
Ich habe eine Methode für den Premium-Freitag mit einem Liner erstellt
Als ich eine Methode für Premium Friday erstellen wollte, war sie bereits in der Java 8-Standard-API enthalten
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe ein Diff-Tool für Java-Dateien erstellt
[Ruby] Ich möchte einen Methodensprung machen!
Ich habe einen Docker-Container erstellt, um Maven auszuführen
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich habe eine Bibliothek zum Anzeigen von Tutorials auf Android erstellt.
Ich möchte eine generische Anmerkung für einen Typ erstellen
Ich habe eine Chat-App erstellt.
So erstellen Sie eine Methode
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Ich möchte rekursiv nach Dateien in einem bestimmten Verzeichnis suchen
Ich habe eine shopify App @java erstellt
Ich habe mit Swing eine GUI erstellt
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe versucht, die Methode zu erklären
Ich habe ein Juwel gemacht, um den Text des Org-Modus in Qiita zu posten
Ich habe eine einfache Empfehlungsfunktion erstellt.
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
[Einführung in JSP + Servlet] Ich habe eine Weile damit gespielt ♬
Warum muss ich eine "Methode" machen? ~ "Nur Main" hätte funktioniert ~
Ich habe ein Tool erstellt, um den Unterschied zwischen CSV-Dateien auszugeben
Ich habe eine passende App erstellt (Android App)
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
[JDBC] Ich habe versucht, den SQLite3-Datenbankzugriff von Java in eine Methode für jede SQL-Anweisung umzuwandeln.
Ich hatte Probleme bei der Arbeit und habe ein IntelliJ-Plug-In erstellt
Ich habe einen Arbitrage-Transaktionsbot für virtuelle Währungen erstellt und versucht, Geld zu verdienen
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 2) erstellt: Modell ändern
Ich möchte eine Webanwendung entwickeln!
Ich möchte ein schönes build.gradle schreiben
[Ruby] Ich habe einen einfachen Ping-Client erstellt
[Für Programmieranfänger] Was ist eine Methode?
Ich möchte einen Unit Test schreiben!
So erstellen Sie ein Maven-Repository für 2020
Ich wollte der Methode @VisibleForTesting hinzufügen
Ich war süchtig nach der Rollmethode
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Taschenrechner-App für Android erstellt
Ich habe ein neues Java-Bereitstellungstool erstellt
Eine einfache und bequeme Methode für HashMap
Ich habe eine Janken App mit Android gemacht
Eine Notiz, die ich aufgegeben habe, um eine benutzerdefinierte Anmerkung für Lombok zu erstellen
[Android] Ich möchte einen ViewPager erstellen, der für Tutorials verwendet werden kann
[Go To Travel] Ich suchte nach einem Plan mit einer Quo-Karte
Ich habe einen THETA API-Client erstellt, der für die Plug-Entwicklung verwendet werden kann