1. ホーム
  2. java

[解決済み] ジャワ島のユリウス日

2022-02-19 06:28:05

質問

での解決策を拝見しました。 http://www.rgagnon.com/javadetails/java-0506.html しかし、正しく動作しません。 例:昨日(6月8日)は159のはずですが、245と表示されました。

そこで、現在の日付の3桁のユリウス日(ユリウス日付ではなく、今年の日が必要です)を取得するためのJavaでの解決策をご存知の方はいらっしゃいますか?

ありがとうございました。マーク

解決方法は?

もし、年号が欲しいだけなら、GregorianCalendars を使えばいいじゃないですか。 DAY_OF_YEAR フィールドを使用します。

import java.util.GregorianCalendar;
public class CalTest {
    public static void main(String[] argv) {
        GregorianCalendar gc = new GregorianCalendar();
        gc.set(GregorianCalendar.DAY_OF_MONTH, 8);
        gc.set(GregorianCalendar.MONTH, GregorianCalendar.JUNE);
        gc.set(GregorianCalendar.YEAR, 2010);
        System.out.println(gc.get(GregorianCalendar.DAY_OF_YEAR));
}

}

あるいは、今日のユリウス日付と今年の1月1日のユリウス日付の差を計算することもできます。ただし、1月1日は0日ではないので、結果に必ず1を加えてください。

int[] now = {2010, 6, 8};
int[] janFirst = {2010, 1, 1};
double dayOfYear = toJulian(now) - toJulian(janFirst) + 1
System.out.println(Double.valueOf(dayOfYear).intValue());