7桁のユリウス日をMM/dd / yyyのような形式に変換するにはどうすればよいですか?
18416 次
5 に答える
5
便利なサイトを見つけました: http://www.rgagnon.com/javadetails/java-0506.html
これでうまくいくはずです:
public static int[] fromJulian(double injulian) {
int jalpha,ja,jb,jc,jd,je,year,month,day;
double julian = julian + HALFSECOND / 86400.0;
ja = (int) julian;
if (ja>= JGREG) {
jalpha = (int) (((ja - 1867216) - 0.25) / 36524.25);
ja = ja + 1 + jalpha - jalpha / 4;
}
jb = ja + 1524;
jc = (int) (6680.0 + ((jb - 2439870) - 122.1) / 365.25);
jd = 365 * jc + jc / 4;
je = (int) ((jb - jd) / 30.6001);
day = jb - jd - (int) (30.6001 * je);
month = je - 1;
if (month > 12) month = month - 12;
year = jc - 4715;
if (month > 2) year--;
if (year <= 0) year--;
return new int[] {year, month, day};
}
于 2010-06-10T20:05:54.533 に答える
3
Java 8以降、これは次を取得するためのワンライナーになりますLocalDate
。
LocalDate.MIN.with(JulianFields.JULIAN_DAY, julianDay)
.format(DateTimeFormatter.ofPattern("MM/dd/yyyy"));
julianDay
あなたの7桁の番号はどこですか.
于 2016-04-19T11:25:35.527 に答える
3
簡単な方法がここにあり、これは約 100% 正確な情報を返します。
String getDobInfo(double doubleString){
SweDate sweDate = new SweDate(doubleString);
int year = sweDate.getYear();
int month = sweDate.getMonth();
int day = sweDate.getDay();
// getting hour,minute and sec from julian date
int hour = (int) Math.floor(sweDate.getHour());
int min = (int) Math
.round((sweDate.getHour() - Math.floor(hour)) * 60.0);
int sec = (int) (((sweDate.getHour() - Math.floor(hour)) * 60.0 - Math
.floor(min)) * 60.0);
return "DOB:(DD:MM:YY) "+day+":"+month+":"+year+" TOB:(HH:MM:SS) "+hour+":"+min+":"+sec;
}
Swiss Ephemeris ライブラリをダウンロードして、 コーディングをお楽しみください!!!
于 2015-03-24T07:28:10.230 に答える
1
天文学者が使うようなユリウス日を本当に意味していますか? 年 (4 桁) とその年の日付 (3 桁) として指定される序数日付は、誤ってユリウス日と呼ばれることがあります。
static String formatOrdinal(int year, int day) {
Calendar cal = Calendar.getInstance();
cal.clear();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.DAY_OF_YEAR, day);
Date date = cal.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
return formatter.format(date);
}
これにより、現地時間の 00:00 の日付が得られます。アプリケーションによっては、代わりにカレンダーのタイムゾーンを GMT に設定したい場合があります。
于 2010-06-10T20:13:55.863 に答える