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 ...
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;
}
}
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