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

标签 java android time calendar gregorian-calendar

android.text.format.Time有一个方法叫做 getJulianDay返回自纪元以来的天数。但是文档说:

This class was deprecated in API level 22. Use GregorianCalendar instead.

GregorianCalendar 中是否有任何方法可以完成同样的工作?

最佳答案

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;
}

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

关于java - 在android中使用公历获取当前的儒略日数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32949757/

相关文章:

java - 相机预览很好,但前置相机产生的照片非常暗

java - 如何从 NetBeans 中解开 Java EE 教程示例并将其与 Eclipse 一起使用?

Android 使用 ShelockFragment 而不是 Fragment

android - 如何生成一定范围内的随机数?

.net - 通过 Win 10 Oct 2018 更新,Windows 可以识别闰秒。 .NET 的 DateTime 现在也是吗?

java - 在 AVD 上运行时发生 Android 套接字错误

java - 单例模式是 RedissonClient 的一个很好的用例吗?

c++ - 如何在 Linux 中的 C++ 中获取精确到毫秒的日期和时间字符串?

android - Android Studio中项目的备份

c# - 如何将UTC时间转换为C#中任何其他时区的时间