1.ũ?农历?aspԴ??
ũ??aspԴ??
/t///.html
/t///.html
参考
农历中一种日月兼顾的历法,
月份是码农码以月为历,
节气是历数以日为历,
地公转轨道是据源虚拟币源码系统一个以太阳为一个焦点的椭圆,
以近日点为0度,农历以太阳为中心,码农码web封装源码
将地球公转所扫过的历数角度每十五度的界点所在日期便是一个节气。
(可以运用立体几何算出,据源春分秋分大阳直射赤道,农历地球任意一经纬处日夜时间相等;夏至冬至太阳直射回归线[假设地球是码农码个圆球])
以上是基本知识,再分析一下代码。历数
代码1。据源
var sTermInfo = new Array(0,农历dedecms小说源码,,,,,,,,,,,,,,,,,,,,,,)
//每年的正小寒点到各节期正节期点(即十五度倍数点)的分种数。
//地球公转每年都一样
//由于公转轨道是码农码椭圆,故这个数列并不是历数准确的等差数列
代码2
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( .7*(y-) + sTermInfo[n]* ) + Date.UTC(,0,6,2,5) )
return(offDate.getUTCDate())
}
.7为地球公转周期,是office源码分析毫秒。(如果换算成天,是.天,所以每四百年就有个闰年,梯控源码同样,我们也可以看到,如果这样做的话,一百三十万年后,我们的公历算法将有一天的误差)
( .7*(y-) + sTermInfo[n]* )----表示y年的第n个节气点(倍数度点)距年的小寒点的毫秒数。
Date.UTC(,0,6,2,5)----表示年一年六日两点五分是正小寒点。
以上两者相加得到的是:y年的第n个节气点时点的int值
var offDate = new Date( ( .7*(y-) + sTermInfo[n]* ) + Date.UTC(,0,6,2,5) )----得出毫秒对应的日期