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