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