Erstellt eine Methode zum Anfordern von Premium Friday (Java 8-Version)

Erster Entwurf

Ich las Ich habe eine Methode erstellt, um nach Premium Friday zu fragen und schrieb eine Java8-Version für das Studium von Java8.

import java.time.*;
import java.time.format.DateTimeFormatter;

public class PremiumFriday {

    public static void main(String[] args) {

        int[] years = {2017, 2018, 2019};
        for (int year : years) {
            for (int month = 1; month < 13; month++) {
                if (year == 2017 && month == 1) {
                    continue;
                }
                YearMonth ym = YearMonth.of(year, month);
                LocalDateTime pf = getMonthOfPremiumFriday(ym);
                System.out.println(DateTimeFormatter.ofPattern("yyyy/MM/dd(E)").format(pf));
            }
        }
    }

    private static LocalDateTime getMonthOfPremiumFriday(YearMonth ym) {

        LocalDate ls = ym.atEndOfMonth();
        LocalDateTime ldt = ls.atStartOfDay();

        while (true) {
            if (ldt.getDayOfWeek() == DayOfWeek.FRIDAY) {
                break;
            } else {
                ldt = ldt.plusDays(-1);
            }
        }

        return ldt;

    }

}

Ergebnis

2017/02/24(Geld)
2017/03/31(Geld)
2017/04/28(Geld)
2017/05/26(Geld)
2017/06/30(Geld)
2017/07/28(Geld)
2017/08/25(Geld)
2017/09/29(Geld)
2017/10/27(Geld)
2017/11/24(Geld)
2017/12/29(Geld)
2018/01/26(Geld)
2018/02/23(Geld)
2018/03/30(Geld)
2018/04/27(Geld)
2018/05/25(Geld)
2018/06/29(Geld)
2018/07/27(Geld)
2018/08/31(Geld)
2018/09/28(Geld)
2018/10/26(Geld)
2018/11/30(Geld)
2018/12/28(Geld)
2019/01/25(Geld)
2019/02/22(Geld)
2019/03/29(Geld)
2019/04/26(Geld)
2019/05/31(Geld)
2019/06/28(Geld)
2019/07/26(Geld)
2019/08/30(Geld)
2019/09/27(Geld)
2019/10/25(Geld)
2019/11/29(Geld)
2019/12/27(Geld)

Es ist einfach und leicht zu verstehen, wenn ich es schreibe, aber es war schwer herauszufinden, dass ich mein Wissen aktualisieren musste ...

Nachtrag 2017/3/2

Ich habe Ratschläge erhalten, wie man auf Twitter schreibt, also habe ich es umgeschrieben.

import java.time.*;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

public class PremiumFriday {

    public static void main(String[] args) {

        int[] years = {2017, 2018, 2019};
        for (int year : years) {
            for (Month month : Month.values()) {
                if (year == 2017 && month == Month.JANUARY) {
                    continue;
                }
                YearMonth ym = YearMonth.of(year, month);
                LocalDate pf = getMonthOfPremiumFriday(ym);
                System.out.println(DateTimeFormatter.ofPattern("yyyy/MM/dd(E)").format(pf));
            }
        }
    }

    private static LocalDate getMonthOfPremiumFriday(YearMonth ym) {

        LocalDate premiumFriday = ym.atEndOfMonth().with(TemporalAdjusters.lastInMonth(DayOfWeek.FRIDAY));

        return premiumFriday;

    }

}

Punkt

  1. Verwenden Sie Month \ (Java Platform SE 8 ) für die Monatsschleifenbedingung Gewechselt zu.
  2. Verwenden Sie TemporalAdjusters \ (Java Platform SE 8 ), um den letzten Freitag zu beurteilen. Ich habe es geändert, um es zu verwenden.
  3. Informationen zur Verwendung finden Sie auch unter LocalDate \ (Java Platform SE 8 ).
  4. Informationen zum Schreiben mit dem Lambda-Ausdruck finden Sie in der Beschreibung anderer Personen (dieser Artikel ist mit dem folgenden Artikel verknüpft). Ich wage es nicht, Lambda zu verwenden, damit ich sehen kann, was ich in Zukunft in Teilen mache.

Nachricht an dich in der Zukunft

Wenn ich die Möglichkeit habe, Java 8 bei der Arbeit zu verwenden, werde ich dies definitiv einmal tun, also werde ich nach Qiita suchen!

Recommended Posts

Erstellt eine Methode zum Anfordern von Premium Friday (Java 8-Version)
Ich habe eine Methode entwickelt, um nach Premium Friday zu fragen
Als ich eine Methode für Premium Friday erstellen wollte, war sie bereits in der Java 8-Standard-API enthalten
Ich habe ein Diff-Tool für Java-Dateien erstellt
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich habe eine Docker-Datei erstellt, um Glassfish 5 mit Oracle Java zu starten
Ich habe eine shopify App @java erstellt
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe ein neues Java-Bereitstellungstool erstellt
[JDBC] Ich habe versucht, den SQLite3-Datenbankzugriff von Java in eine Methode für jede SQL-Anweisung umzuwandeln.
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
Ich habe versucht, eine Java-Methode von ABCL zu verwenden
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe ein Janken-Spiel in Java (CLI) gemacht.
Ich habe versucht, den Block mit Java zu brechen (1)
[Azure] Ich habe versucht, eine Java-App für die Erstellung von kostenlosen Web-Apps zu erstellen. [Anfänger]
Ich habe ein Docker-Image für die japanische Version von SDAPS erstellt
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
Ich habe ein Check-Tool für das Release-Modul erstellt
Ich möchte eine Methode einer anderen Klasse aufrufen
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Eine Lernmethode für unerfahrene Personen, um Java SE 8 Silver in einem Monat zu bestehen
Ich habe eine Bibliothek zum Anzeigen von Tutorials auf Android erstellt.
Ich habe einen Wrapper erstellt, der KNP von Java aus aufruft
[Azure] Ich habe versucht, eine kostenlose Java-App zu erstellen ~ Mit FTP verbinden ~ [Anfänger]
Ich möchte eine generische Anmerkung für einen Typ erstellen
[Paiza] Ich habe mein eigenes Dienstprogramm zum Beantworten von Fragen erstellt. [Java]
Ich habe versucht, eine japanische Version der Automatik-Mail von Rails / devise zu erstellen
Ich habe [Klonmethode für Java-Arrays] als Klonmethode in Java-Arrays übersetzt.
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
So erstellen Sie ein leichtes Container-Image für Java-Apps
Ich habe ein Plug-In erstellt, das Jextract mit Gradle-Aufgaben ausführt
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Erstellen Sie eine Methode, um den Steuersatz in Java zurückzugeben
Selbst in Java möchte ich true mit == 1 && a == 2 && a == 3 ausgeben
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe Randoop untersucht, einen JUnit-Testklassengenerator für Java.
Ich habe einen RESAS-API-Client in Java erstellt
Ein Memorandum, um den juckenden Ort für Java Gold zu erreichen
Ein Memo zum Starten der Java-Programmierung mit VS Code (Version 2020-04)
So senken Sie die Java-Version
Erstellen Sie eine Java-Methode [Memo] [java11]
Ich habe eine Chat-App erstellt.
So erstellen Sie eine Methode
[Java] So suchen Sie mit der Methode includes nach Werten in einem Array (oder einer Liste)
Wie gehe ich mit dem Typ um, den ich 2 Jahre lang über das Schreiben eines Java-Programms nachgedacht habe?
Ich möchte rekursiv nach Dateien in einem bestimmten Verzeichnis suchen
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Cheet Sheet für Java-erfahrene Leute, um Ruby (Rails) zu lernen
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode