- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
万年历---java算法实现
万年历---java算法实现万年历是我在网上见到的一份极高高精度的万年历,其采用先进的算法实现,其精度堪比刘安国教授为中国科学院国家授时中心制作的日梭万年历。但网络上只有javascript版本。于是自己将其翻译为java程序,并公布于此,方便大家使用。本文中讲的万年历是一款采用现代天文算法制作的农历历算程序,含有公历与回历信息,可以很方便的进行公、农、回三历之间的转换。提供公元-4712年到公元9999年的日期查询功能。其中1500年到1940农历数据已经与陈垣的《二十史朔闰表》核对;含有从公420元(南北朝/宋武帝元年)到今的基本年号。在过去几百年中,寿星万年历的误差是非常小的,节气时刻计算及日月合朔时刻的平均误差小于1秒,太阳坐标的最大可能误差为0.2角秒,月亮坐标的最大可能误差为3角秒,平均误差为误差的1/6。万年历中含有几百个国内城市的经纬度,并且用户可根据自已的需要扩展经纬度数据。???代码如下:?/**?* @author lxslove?* @mail?moodlxs at 163?*?*/public class SolarTerm {?// ========角度变换===============?private static final double rad = 180 * 3600 / Math.PI; // 每弧度的角秒数?private static final double RAD = 180 / Math.PI; // 每弧度的角度数?// ================日历计算===============?private static final double J2000 = 2451545; // 2000年前儒略日数(2000-1-1?// 12:00:00格林威治平时)?// =========黄赤交角及黄赤坐标变换===========?private static final double hcjjB[] = { 84381.448, -46.8150, -0.00059,???0.001813 };// 黄赤交角系数表?private static final double preceB[] = { 0, 50287.92262, 111.24406,???0.07699, -0.23479, -0.00178, 0.00018, 0.00001 };// Date黄道上的岁差p?private double Y = 2000;?private double M = 1;?private double D = 1;?private double h = 12;?private double m = 0;?private double s = 0;?private static final double[] dts = {???// 世界时与原子时之差计算表???-4000, 108371.7, -13036.80, 392.000, 0.0000, -500, 17201.0,???-627.82, 16.170, -0.3413, -150, 12200.6, -346.41, 5.403, -0.1593,???150, 9113.8, -328.13, -1.647, 0.0377, 500, 5707.5, -391.41, 0.915,???0.3145, 900, 2203.4, -283.45, 13.034, -0.1778, 1300, 490.1, -57.35,???2.085, -0.0072, 1600, 120.0, -9.81, -1.532, 0.1403, 1700, 10.2,???-0.91, 0.510, -0.0370, 1800, 13.4, -0.72, 0.202, -0.0193, 1830,???7.8, -1.81, 0.416, -0.0247, 1860, 8.3, -0.13, -0.406, 0.0292, 1880,???-5.4, 0.32, -0.183, 0.0173, 1900, -2.3, 2.06, 0.169, -0.0135, 1920,???21.2, 1.69, -0.304, 0.0167, 1940, 24.2, 1.22, -0.064, 0.0031, 1960,???33.2, 0.51, 0.231, -0.0109, 1980, 51.0, 1.29, -0.026, 0.0032, 2000,???64.7, -1.66, 5.224, -0.2905, 2150, 279.4, 732.95, 429.579, 0.0158,???6000 };?// 取整数部分?pu
文档评论(0)