在android中使用公历获取当前的儒略日数

Mis*_*rdi 3 java time android calendar gregorian-calendar

android.text.format.Time有一个名为getJulianDay的方法,它返回自纪元以来的天数。但文档说:

此类在 API 级别 22 中已弃用。请改用 GregorianCalendar。

有没有任何方法GregorianCalendar可以起到同样的作用?

Pet*_*erg 6

AFIK 没有,但也许这可以帮助,小数部分被忽略。

public static int getJulianDay(Calendar cal) {
    int year = cal.get(Calendar.YEAR);
    int month = cal.get(Calendar.MONTH)+1; //Note January returns 0
    int date = cal.get(Calendar.DATE);
    return (1461 * (year + 4800 + (month - 14) / 12)) / 4 
            + (367 * (month - 2 - 12 * ((month - 14) / 12))) / 12
            - (3 * ((year + 4900 + (month - 14) / 12) / 100)) / 4 + date - 32075;
}
Run Code Online (Sandbox Code Playgroud)

计算公式来自https://en.wikipedia.org/wiki/Julian_day请参阅“将公历日期转换为儒略日数”部分