ISO暦体系

java8より導入された、java.time パッケージのラッパーとして機能します。
このパッケージに限り日本時間でなく、タイムゾーンに基づいた世界暦を扱います。
AJD310クラスはAJDの派生クラスで、タイムゾーンにより各国の日時を表現します。

import ajd4jp.iso.*;
import java.time.*;

public class Test {
    public static void main(String[] argv) throws Exception {
        ZoneId euro = ZoneId.of("Europe/London");
        // イギリス サマータイム開始の前日22時
        AJD310 ajd = AJD310.of(2012, 3, 24, 22, 0, 0, euro);
        for (int i = 0; i < 6; i++) {
            System.out.println(ajd.toIsoString(false));
            ajd = (AJD310)ajd.addHour(1);
        }
        System.out.println("----");
        // イギリス サマータイム終了の前日22時
        ajd = AJD310.of(2012, 10, 27, 22, 0, 0, euro);
        for (int i = 0; i < 6; i++) {
            System.out.println(ajd.toIsoString(false));
            ajd = (AJD310)ajd.addHour(1);
        }
    }
}
出力例
2012-03-24T22:00:00Z
2012-03-24T23:00:00Z
2012-03-25T00:00:00Z
2012-03-25T02:00:00+01:00
2012-03-25T03:00:00+01:00
2012-03-25T04:00:00+01:00
----
2012-10-27T22:00:00+01:00
2012-10-27T23:00:00+01:00
2012-10-28T00:00:00+01:00
2012-10-28T01:00:00+01:00
2012-10-28T01:00:00Z
2012-10-28T02:00:00Z

イギリス時間は通常UTCと一致していますが、サマータイム(3月最終日曜日1時~10月最終日曜日1時)があり、その間UTC+1時間となります。
サマータイム初日は1時がありません(1日23時間)。サマータイム最終日は1時が2回登場します(1日25時間)。

java.time パッケージは ISO 8601 に従っており、ISO 8601 は先発グレゴリオ暦を採用しています。
一方、AJD(ユリウス日)ではユリウス暦とグレゴリオ暦を併用し、1582年10月に改暦があります。AJD4JPもこれに従っています。
先発グレゴリオ暦では、改暦以前(ユリウス暦時代)もグレゴリオ暦として計算します。

AJDでの日付 曜日 AJDでの暦法 先発グレゴリオ暦での日付
1582/10/03水曜ユリウス暦1582/10/13
1582/10/04木曜ユリウス暦1582/10/14
1582/10/15金曜グレゴリオ暦1582/10/15
1582/10/16土曜グレゴリオ暦1582/10/16

AJDでは、1582/10/05~1582/10/14の日付は存在しません(改暦タイミングで日付が飛ばされたため)。
先発グレゴリオ暦は1582/10/14以前から連続した10月の日付が続きます。
そのため、以下のようにインスタンス生成時の入力値と生成されたインスタンスの日付が異なります。
ですが同一日を表しています。

import ajd4jp.iso.*;
import java.time.*;

public class Test {
    public static void main(String[] argv) throws Exception {
        AJD310 ajd310 = AJD310.of(1582, 10, 14, ZoneOffset.UTC);
        System.out.println(ajd310.toIsoString(false));
        ajd310 = (AJD310)ajd310.addDay(1);
        System.out.println(ajd310.toIsoString(false));
    }
}
出力例
1582-10-04T00:00:00Z
1582-10-15T00:00:00Z

1582/10/14(先発グレゴリオ暦表現)の入力に対し、1582/10/04(ユリウス歴表現)のインスタンスを返します。
その翌日は 1582/10/15 となります。
またユリウス歴時代の閏年は4年に1回固定です(100年、400年ルールはグレゴリオ暦から採用)。
そのため1582年以前の閏年の扱いにも違いが出ます。
1582年より過去を扱う場合には注意して下さい。