Création d'une méthode pour demander Premium Friday (version Java 8)

Premier essai

J'ai lu j'ai créé une méthode pour demander un supplément vendredi et j'ai écrit une version Java8 pour étudier 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;

    }

}

résultat

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

C'est simple et facile à comprendre quand je l'écris, mais il était difficile de savoir que j'avais besoin de mettre à jour mes connaissances ...

PostScript 2017/3/2

J'ai reçu des conseils sur la façon d'écrire sur Twitter, alors je l'ai réécrit.

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;

    }

}

point

  1. Utilisez Month \ (Java Platform SE 8 ) pour la condition de boucle du mois Changé en.
  2. Utilisez TemporalAdjusters \ (Java Platform SE 8 ) pour juger du dernier vendredi. Je l'ai changé pour l'utiliser.
  3. Voir également LocalDate \ (Java Platform SE 8 ) pour savoir comment l'utiliser.
  4. Pour savoir comment écrire à l'aide de l'expression lambda, reportez-vous à la description des autres personnes (cet article est lié à l'article suivant). Je n'ose pas utiliser lambda pour voir ce que je fais dans le futur.

Message à vous-même dans le futur

Si j'ai la chance d'utiliser Java 8 au travail, je vais certainement le faire une fois, donc je vais chercher sur Qiita!

Recommended Posts

Création d'une méthode pour demander Premium Friday (version Java 8)
J'ai fait une méthode pour demander la prime vendredi
Quand j'ai voulu créer une méthode pour Premium Friday, c'était déjà dans l'API standard Java 8
J'ai créé un outil Diff pour les fichiers Java
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
J'ai créé un Dockerfile pour démarrer Glassfish 5 en utilisant Oracle Java
J'ai créé une application shopify @java
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
J'ai créé un plug-in pour IntelliJ IDEA
J'ai créé un nouvel outil de déploiement Java
[JDBC] J'ai essayé de faire de l'accès à la base de données SQLite3 depuis Java une méthode pour chaque instruction SQL.
J'ai créé un programme de jugement des nombres premiers en Java
java j'ai essayé de casser un simple bloc
Je l'ai fait en Java pour toujours rendre (a == 1 && a == 2 && a == 3) vrai
J'ai essayé de frapper une méthode Java d'ABCL
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java
J'ai créé un jeu Janken en Java (CLI)
J'ai essayé de casser le bloc avec java (1)
[Azure] J'ai essayé de créer une application Java pour la création d'applications Web gratuites - [Débutant]
J'ai créé une image Docker pour la version japonaise de SDAPS
J'ai fait un jeu de problèmes de calcul simple en Java
J'ai créé un outil de vérification pour le module de version
Je veux appeler une méthode d'une autre classe
J'ai essayé de créer une compétence Clova en Java
J'ai essayé de créer une fonction de connexion avec Java
Une méthode d'étude pour les personnes inexpérimentées pour passer Java SE 8 Silver en un mois
J'ai créé une bibliothèque pour afficher des tutoriels sur Android.
J'ai créé un Wrapper qui appelle KNP depuis Java
[Azure] J'ai essayé de créer une application Java gratuitement ~ Se connecter avec FTP ~ [Débutant]
Je souhaite créer une annotation générique pour un type
[Paiza] J'ai créé mon propre utilitaire pour répondre aux questions [Java]
J'ai essayé de faire une version japonaise de la transmission automatique du courrier de Rails / devise
J'ai traduit [Méthode Clone pour les tableaux Java] comme méthode Clone dans les tableaux Java.
J'ai essayé de créer un environnement de développement java8 avec Chocolatey
[Java] Je souhaite convertir un tableau d'octets en un nombre hexadécimal
Comment créer une image de conteneur légère pour les applications Java
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
Je veux faire une liste avec kotlin et java!
Je veux appeler une méthode et compter le nombre
Je voulais juste créer une propriété réactive en Java
Je veux créer une fonction avec kotlin et java!
Créer une méthode pour renvoyer le taux de taxe en Java
Même en Java, je veux afficher true avec un == 1 && a == 2 && a == 3
J'ai essayé de convertir une chaîne de caractères en un type LocalDate en Java
J'ai étudié Randoop, un générateur de classe de test JUnit pour Java.
J'ai créé un client RESAS-API en Java
Un mémorandum pour atteindre le lieu qui démange pour Java Gold
Un mémo pour démarrer la programmation Java avec VS Code (version 2020-04)
Comment abaisser la version java
Créer une méthode java [Memo] [java11]
J'ai créé une application de chat.
Comment créer une méthode
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Comment gérer le type auquel j'ai pensé en écrivant un programme Java pendant 2 ans
Je souhaite rechercher de manière récursive des fichiers dans un répertoire spécifique
Une histoire que j'ai eu du mal à défier le pro de la concurrence avec Java
Cheet sheet pour les personnes expérimentées en Java pour apprendre Ruby (rails)
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
Connexion à une base de données avec Java (partie 1) Peut-être la méthode de base