聞こえないJavaエンジニアが適当に書き連ねていく

つらつらとメモしたり日頃の溜まっている想いを吐き出す場所です。

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の対象です。