万年历 - java算法实现(9)
double[] moon = moonCal(t); // 日月角差与章动无关 return rad2mrad(jiao - (moon[0] - sun[0])); }
// ==================已知位置反求时间=================== public double jiaoCal(double t1, double jiao, int lx) { // t1是J2000起算儒略日数 // 已知角度(jiao)求时间(t)
// lx=0是太阳黄经达某角度的时刻计算(用于节气计算)
// lx=1是日月角距达某角度的时刻计算(用于定朔望等) // 传入的t1是指定角度对应真时刻t的前一些天
// 对于节气计算,应满足t在t1到t1+360天之间,对于Y年第n个节气(n=0是春分),t1可取值Y*365.2422+n*15.2
// 对于朔望计算,应满足t在t1到t1+25天之间,在此范围之外,求右边的根 double t2 = t1, t = 0, v; if (lx == 0)
t2 += 360; // 在t1到t2范围内求解(范气360天范围),结果置于t else t2 += 25;
jiao *= Math.PI / 180; // 待搜索目标角 // 利用截弦法计算
double v1 = jiaoCai(lx, t1, jiao); // v1,v2为t1,t2时对应的黄经 double v2 = jiaoCai(lx, t2, jiao); if (v1 < v2)
v2 -= 2 * Math.PI; // 减2pi作用是将周期性角度转为连续角度 double k = 1, k2; // k是截弦的斜率
for (int i = 0; i < 10; i++) { // 快速截弦求根,通常截弦三四次就已达所需精度 k2 = (v2 - v1) / (t2 - t1); // 算出斜率 if (Math.abs(k2) > 1e-15) k = k2; // 差商可能为零,应排除 t = t1 - v1 / k;
v = jiaoCai(lx, t, jiao);// 直线逼近法求根(直线方程的根) if (v > 1)
v -= 2 * Math.PI; // 一次逼近后,v1就已接近0,如果很大,则应减1周 if (Math.abs(v) < 1e-8) break; // 已达精度 t1 = t2; v1 = v2; t2 = t;
v2 = v; // 下一次截弦 } return t; }
//==================节气计算=================== public static final String jqB[] = { //节气表
\春分\清明\谷雨\立夏\小满\芒种\夏至\小暑\大暑\立秋\处暑\白露\ \秋分\寒露\霜降\立冬\小雪\大雪\冬至\小寒\大寒\立春\雨水\惊蛰\ public void JQtest(int y) { // 节气使计算范例,y是年分,这是个测试函数 double jd = 365.2422 * (y - 2000), q; String s1, s2;
for (int i = 0; i < 24; i++) { q = jiaoCal(jd + i * 15.2, i * 15, 0);
q = q + J2000 + (double)8 / 24; // 计算第i个节气(i=0是春风),结果转为北京时 setFromJD(q, true);
s1 = toStr(); // 将儒略日转成世界时 setFromJD(q, false);
s2 = toStr(); // 将儒略日转成日期格式(输出日期形式的力学时) System.out.println(jqB[i] + \显示 } }
// =================定朔弦望计算======================== public void dingSuo(int y, double arc) { // 这是个测试函数 double jd = 365.2422 * (y - 2000), q; String s1, s2;
System.out.println(\月份:世界时 原子时\ for (int i = 0; i < 12; i++) {
q = jiaoCal(jd + 29.5 * i, arc, 1) + J2000 + 8 / 24; // 计算第i个节气(i=0是春风),结果转为北京时
setFromJD(q, true);
s1 = toStr(); // 将儒略日转成世界时 setFromJD(q, false);
s2 = toStr(); // 将儒略日转成日期格式(输出日期形式的力学时) System.out.println((i + 1) + \月 : \显示 } }
//=================农历计算======================== /*****
…… 此处隐藏:92字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




