[JAVA] J'ai fait une méthode pour demander la prime vendredi

Vendredi Premium qui a commencé le vendredi 24 février 2017. C'est un système avec des avantages et des inconvénients, mais c'est bien d'avoir plus de vacances quand même. Avez-vous tous quitté le bureau à 15h00 le premier vendredi premium? __ Je ne pouvais pas (´ ・ ω ・ `) __ Je ne pouvais même pas quitter le bureau à l'heure (´ ・ ω ・ `)

Alors (?) J'ai fait une méthode pour calculer la prime vendredi. Veuillez l'utiliser.


import java.util.Calendar;

public class PremiumFridayUtils {
    
    /**
     *Trouvez le jour Premium Friday du mois spécifié. Pendant des mois sans vendredi premium-Renvoie 1.
     * @année param année(1..*)
     * @mois param mois(1..12)
     * @retour Premium vendredi jour du mois spécifié(1..31)
     */
    public static int getPremiumFriday(int year, int month) {
        //L'année doit être un nombre positif et le mois doit être compris entre 1 et 12.
        if (year < 1 || month < 1 || month > 12) {
            throw new IllegalArgumentException();
        }
        
        //Le vendredi premium aura lieu après février 2017.
        if (year < 2017 || (year == 2017 && month == 1)) {
            return -1;
        }
        
        //Il est jugé si c'est vendredi un jour du dernier jour du mois cible, et le premier jour jugé comme vendredi est
        //Dernier vendredi du mois=Ce sera un vendredi premium.
        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-Sortie pour 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

J'ai fait une méthode pour demander la prime vendredi
Création d'une méthode pour demander Premium Friday (version Java 8)
J'ai fait une méthode pour le vendredi premium avec une doublure
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 plug-in pour IntelliJ IDEA
J'ai créé un outil Diff pour les fichiers Java
[Ruby] Je veux faire un saut de méthode!
J'ai créé un conteneur Docker pour exécuter Maven
Je veux appeler une méthode d'une autre classe
J'ai créé une bibliothèque pour afficher des tutoriels sur Android.
Je souhaite créer une annotation générique pour un type
J'ai créé une application de chat.
Comment créer une méthode
J'ai créé un plug-in qui exécute jextract avec des tâches Gradle
[Débutant] J'ai créé un programme pour vendre des gâteaux en Java
Je veux appeler une méthode et compter le nombre
J'ai créé un Dockerfile pour démarrer Glassfish 5 en utilisant Oracle Java
Je souhaite rechercher de manière récursive des fichiers dans un répertoire spécifique
J'ai créé une application shopify @java
J'ai créé une interface graphique avec Swing
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
J'ai essayé d'expliquer la méthode
J'ai fait un petit bijou pour poster le texte du mode org sur qiita
J'ai posé une question qui peut être utilisée pour des entretiens techniques
J'ai fait une simple fonction de recommandation.
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 5):
[Java] J'ai essayé de faire un labyrinthe par la méthode de creusage ♪
[Introduction à JSP + Servlet] J'ai joué avec pendant un moment ♬
Pourquoi dois-je faire une "méthode"? ~ "Main only" aurait fonctionné ~
J'ai créé un outil pour afficher la différence du fichier CSV
J'ai créé une application correspondante (application Android)
J'ai créé un outil de génération package.xml.
[Android] J'ai créé une application de podomètre.
[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'avais des problèmes au travail, j'ai donc créé un plug-in IntelliJ
J'ai créé un bot de transaction d'arbitrage de monnaie virtuelle et essayé de gagner de l'argent
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 2): Changer de modèle
Je souhaite développer une application web!
Je veux écrire un joli build.gradle
[Ruby] J'ai créé un simple client Ping
[Pour les débutants en programmation] Qu'est-ce qu'une méthode?
Je veux écrire un test unitaire!
Comment créer un référentiel Maven pour 2020
Je voulais ajouter @VisibleForTesting à la méthode
J'étais accro à la méthode du rouleau
J'ai fait une mort risquée avec Ruby
J'ai créé une application Janken avec kotlin
J'ai créé une application de calculatrice sur Android
J'ai créé un nouvel outil de déploiement Java
Une méthode simple et pratique pour HashMap
J'ai créé une application Janken avec Android
Une note que j'ai renoncé à essayer de créer une annotation personnalisée pour Lombok
[Android] Je souhaite créer un ViewPager pouvant être utilisé pour les didacticiels
[Go To Travel] J'ai cherché un plan avec une carte quo
J'ai créé un client API THETA qui peut être utilisé pour le développement de plugins