求一代码:可以显示当前日期和时间属于哪一个节气?(急用分不够可以再加!!) 我很菜,一点也看不懂,请帮忙吧,我只想显示日期时间和相应的节气。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 老历新历的算法,我都不太清楚~不知道怎么算~ 请大家帮手顶呀,即使讲过思路出来都好呀 一个笨方法但很有效的办法:在万年历程序中查出每年24节气的开始日期,存在程序数组里面,或者存到数据库。然后就是拿一个日期去其中对比,就可以轻松判断节气了。 农历中一种日月兼顾的历法,月份是以月为历,节气是以日为历,地公转轨道是一个以太阳为一个焦点的椭圆,以近日点为0度,以太阳为中心,将地球公转所扫过的角度每十五度的界点所在日期便是一个节气。(可以运用立体几何算出,春分秋分大阳直射赤道,地球任意一经纬处日夜时间相等;夏至冬至太阳直射回归线[假设地球是个圆球])以上是基本知识,再分析一下代码。代码1。var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)//每年的正小寒点到各节期正节期点(即十五度倍数点)的分种数。//地球公转每年都一样//由于公转轨道是椭圆,故这个数列并不是准确的等差数列代码2//===== 某年的第n个节气为几日(从0小寒起算)function sTerm(y,n) { var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) ) return(offDate.getUTCDate())}31556925974.7为地球公转周期,是毫秒。(如果换算成天,是265.242199天,所以每四百年就有97个闰年,同样,我们也可以看到,如果这样做的话,一百三十万年后,我们的公历算法将有一天的误差)( 31556925974.7*(y-1900) + sTermInfo[n]*60000 )----表示y年的第n个节气点(15倍数度点)距1900年的小寒点的毫秒数。Date.UTC(1900,0,6,2,5)----表示1900年一年六日两点五分是正小寒点。以上两者相加得到的是:y年的第n个节气点时点的int值var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )----得出毫秒对应的日期 层的显示与隐藏不成功 JS如何遍历页面上所有的控件,包括服务器端的控件,然后获取相应的ID???? 关于split的问题 我还没有在CSDN发表我的游戏,2002年做的 怎么读出一个网页的长和宽 再问下让弹出的窗口最小化怎么写??? JavaScript + VML 生成柱图,折线图,饼图源代码---awawsrain(绝对零度)修改 孟宪会之精彩世界里的这代码谁有呀 关闭一个页面时,利用Onunload实现重定向为何不行呢? 怎样使网页自动关闭且不出现提示框? 如何画一条虚竖线 急在线等 大家评一下这个网站.
不知道怎么算~
然后就是拿一个日期去其中对比,就可以轻松判断节气了。
月份是以月为历,
节气是以日为历,
地公转轨道是一个以太阳为一个焦点的椭圆,
以近日点为0度,以太阳为中心,
将地球公转所扫过的角度每十五度的界点所在日期便是一个节气。
(可以运用立体几何算出,春分秋分大阳直射赤道,地球任意一经纬处日夜时间相等;夏至冬至太阳直射回归线[假设地球是个圆球])
以上是基本知识,再分析一下代码。
代码1。
var sTermInfo = new Array(0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758)
//每年的正小寒点到各节期正节期点(即十五度倍数点)的分种数。
//地球公转每年都一样
//由于公转轨道是椭圆,故这个数列并不是准确的等差数列
代码2
//===== 某年的第n个节气为几日(从0小寒起算)
function sTerm(y,n) {
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
return(offDate.getUTCDate())
}31556925974.7为地球公转周期,是毫秒。(如果换算成天,是265.242199天,所以每四百年就有97个闰年,同样,我们也可以看到,如果这样做的话,一百三十万年后,我们的公历算法将有一天的误差)( 31556925974.7*(y-1900) + sTermInfo[n]*60000 )----表示y年的第n个节气点(15倍数度点)距1900年的小寒点的毫秒数。
Date.UTC(1900,0,6,2,5)----表示1900年一年六日两点五分是正小寒点。
以上两者相加得到的是:y年的第n个节气点时点的int值
var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )----得出毫秒对应的日期