Javaの今後のLTSバージョンを調べた
これは何
件名の通りの小ネタです。
調べ方
www.oracle.com をベースにJavaで書いてみただけです。
ソース
import java.time.LocalDate; import java.time.Month; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; public class App { private static final int LTS_CYCLE = 3; public static void main(String[] args) { var javaVersion = 11; var ltsRelease = LocalDate.of(2018, 9, 1); var ld = LocalDate.of(2019, 2, 1); var f = DateTimeFormatter.ofPattern("yyyy/MM"); while (true) { if (javaVersion == 110) { break; } ld = ld.plusMonths(1); if (isNewVersionRelease(ld)) { javaVersion++; String msg = ld.format(f) + "の時点のJavaのバージョンは" + javaVersion + "です。"; if (isLtsVersionRelease(ltsRelease, ld)) { ltsRelease = ld; msg += "LTSの対象です。"; System.out.println(msg); } // System.out.println(msg); } } } private static boolean isNewVersionRelease(LocalDate nowDate) { return nowDate.getMonth() == Month.MARCH || nowDate.getMonth() == Month.SEPTEMBER; } private static boolean isLtsVersionRelease(LocalDate ltsDate, LocalDate nowDate) { long diffYear = ChronoUnit.YEARS.between(ltsDate, nowDate); return (diffYear == LTS_CYCLE); } }
毎年3月と9月のリリース時点のバージョンも出すと小ネタとして公開するにはページが長くなるので止めました。
実行結果
2021/09の時点のJavaのバージョンは17です。LTSの対象です。 2024/09の時点のJavaのバージョンは23です。LTSの対象です。 2027/09の時点のJavaのバージョンは29です。LTSの対象です。 2030/09の時点のJavaのバージョンは35です。LTSの対象です。 2033/09の時点のJavaのバージョンは41です。LTSの対象です。 2036/09の時点のJavaのバージョンは47です。LTSの対象です。 2039/09の時点のJavaのバージョンは53です。LTSの対象です。 2042/09の時点のJavaのバージョンは59です。LTSの対象です。 2045/09の時点のJavaのバージョンは65です。LTSの対象です。 2048/09の時点のJavaのバージョンは71です。LTSの対象です。 2051/09の時点のJavaのバージョンは77です。LTSの対象です。 2054/09の時点のJavaのバージョンは83です。LTSの対象です。 2057/09の時点のJavaのバージョンは89です。LTSの対象です。 2060/09の時点のJavaのバージョンは95です。LTSの対象です。 2063/09の時点のJavaのバージョンは101です。LTSの対象です。 2066/09の時点のJavaのバージョンは107です。LTSの対象です。