📄 index.htm
字号:
<html>
<head>
<TITLE>寿星万年历2008版</TITLE>
<META content="寿星万年历;万年历;农历;农历计算;算法;天文算法;伊斯兰历;回历;节气;交节时刻" name=keywords>
<style>
td {font-family:宋体; font-size:12px; line-height:150%}
.bd0 {border: 0px}
.bd1 {border: 1px solid #000000}
.bd2 {border: 2px solid #000000}
.dTop {border-top: 1px solid #000000}
.dBot {border-bottom: 1px solid #000000}
.dRig {border-right: 1px solid #000000}
.dLef {border-left: 1px solid #000000}
.dRB {border-right: 1 solid #000000;border-bottom: 1 solid #000000}
.dRT {border-right: 1 solid #000000;border-top: 1 solid #000000}
.dBot2 {border-bottom: 1px solid #C0C0C0}
</style>
<!--js1S-->
<script language=javascript src=tools.js></script><!--工具函数-->
<script language=javascript src=eph.js></script> <!--星历模块-->
<script language=javascript src=JW.js></script> <!--全国城市经纬数据库及皇帝纪年数据库-->
<script language=javascript src=lunar.js></script><!--日历物件-->
<script language=javascript src=vml.js></script> <!--画图物件-->
<!--js1E-->
</head>
<body>
<center>
<table width=770 class=bd1 cellpadding=0 cellspacing=0>
<tr>
<td width=270 valign=top style='line-height: 150%' class=dRig>
<table width="100%" cellspacing=0 cellpadding=2>
<tr><td class=dBot style='font-size:16px;color:#80C000;font-weight:bold' align=center>寿星万年历 2009版(V4.04)</td></tr>
<tr><td class=dBot align=center>
<!--本地时间-->
<span id=Clock1 style='color:red;font-weight:bold'></span><br>
<!--外地时间-->
<select id=Sel_zhou onchange="change_zhou()"></select> <select id=Sel_dq onchange="change_dq()"></select><br>
<span id=Sel_sqsm></span> <span id=Clock2 style='font-weight:bold;color:blue'></span><br>
<!--经纬度-->
<select id=Sel1 onchange="change(0)" style="width:80px"></select> <select id=Sel2 onchange="change2()"></select><br>
<span id=Cal_zdzb></span>
</td></tr>
<tr><td class=dBot align=center id=Cal5></td></tr><!--日月出没-->
<tr><td class=dBot align=center id=Cal4></td></tr><!--月相节气-->
<!--星历显示-->
<tr><td align=center> 暂停<input id=Cal_pause type=checkbox> <input type=button onclick="showPage(3)" value="日月食图表"> <input type=button onclick="showPage(4)" value="地方食表"></td></tr>
<tr><td id=Cal_zb></td></tr>
</table>
</td>
<td width=500 valign=top>
<!--月历显示区-->
<table width="100%" cellspacing=0 cellpadding=2>
<!--年月日输入-->
<tr><td class=tBot2 bgcolor='#E0E0FF'>
公元<input type=text id=Cal_y size=4 value=2008>年<input type=text maxlength=2 id=Cal_m size=2 value=1>月
<input type=button value="确定" onclick='getLunar()'>
<a href='javascript:changeYear(0)'>▲</a>
<a href='javascript:changeYear(1)'>▼</a>
<a href='javascript:changeMonth(0)'>↑</a>
<a href='javascript:changeMonth(1)'>↓</a>
<input type=button onclick='changeMonth(2)' value='今'>
<a href='javascript:showPage(2)'>年历</a>
<a href='readme.htm'>帮助</a>
</td></tr>
<!--年号及年月输入等-->
<tr><td style="background-color:#0000A0" style="color=#FFFF00" id=Cal2></td></tr>
<tr><td class=dBot2 id=help style="display:none"></td></tr>
<tr><td class=dBot2 id=page1></td></tr><!--月历表-->
<tr><td class=dBot2 id=page2 style="display:none">
公元<input type=text size=4 id=Cal_y2 value=2008>年<input type=checkbox id=Cal_tg checked>时刻/干支
<input type=button onclick="getNianLi(0)" value="确定">
<input type=button onclick="getNianLi(-1)" value="▲">
<input type=button onclick="getNianLi(1)" value="▼">
<input type=button onclick="showPage(1)" value="关闭"><br>
<div id=Cal7></div></td></tr><!--年历表-->
<tr><td class=dBot2 id=page3 style="display:none">
<!--图表区-->
<table width="100%" cellspacing=0 cellpadding=0>
<tr><td>
经度<input id=Cb_J type=text size=11 value=0>纬度<input id=Cb_W type=text size=9 value=0>海拔<input id=Cb_high type=text size=2 value=0>km
北/南<input id=Cb_bei type=checkbox> 时角坐标<input id=Cb_sjzb type=checkbox>
<a href="javascript:showHelp(2)">帮助</a> <input type=button value="关闭" onclick="showPage(1)"><br>
公元<input id=Cb_y type=text size=4 value=2008>年<input id=Cb_m type=text size=2 value=8 maxleng=2>月<input id=Cb_d type=text size=2 value=1>日<input id=Cb_t type=text size=8 value="18:17:15">UTC/TD<input id=Cb_ut type=checkbox checked>
<a href="javascript:tu_calc(0,1)">日食甚</a>
<a href="javascript:tu_calc(0,3)">南北界</a>
<a href="javascript:tu_calc(0,2)">月食甚</a>
<input type=button value="今" onclick="tu_calc(1,0)"><br>
朔望粗定位
<input type=button value="<-" onclick="tu_calc(4,0)"><input type=button value="朔" onclick="tu_calc(5,0)"><input type=button value="+>" onclick="tu_calc(6,0)">
<input type=button value="<-" onclick="tu_calc(7,0)"><input type=button value="望" onclick="tu_calc(8,0)"><input type=button value="+>" onclick="tu_calc(9,0)">
步长<input type=text id=Cb_step size=3 value=300 checked>秒
<input type=button value="<-" onclick="tu_calc(2,0)"><input type=button value="确定" onclick="tu_calc(0,0)"><input type=button value="+>" onclick="tu_calc(3,0)">
日食路径<input id=Cb_phSave type=checkbox> <input type=button onclick="tu_cls_path()" value="清除">
</td></tr>
<tr><td id=Cb_zb></td></tr>
<tr><td><v:group id=Can1 style="width:480;height:300"/></td></tr>
<tr><td><font color=red>本图表中,天坐标(横坐标方位角,纵坐标高度角)与地坐标合用,括号内为地标。</font></td></tr>
</table>
</td></tr>
<!--地方日食表-->
<tr><td class=dBot2 id=page4 style="display:none" align=center>
公元<input id=Cc_y type=text size=4 value=2008>年<input id=Cc_m type=text size=2 value=8 maxleng=2>月<input id=Cc_d type=text size=2 value=1>日
<input type=button value="<-" onclick="dfRS(1)"><input type=button value="朔" onclick="dfRS(0)"><input type=button value="+>" onclick="dfRS(2)"> <input type=button value="关闭" onclick="showPage(1)"><br>
<textarea cols=60 rows=12 id=Cc_db></textarea><br>
<textarea cols=60 rows=12 id=Cc_tb></textarea>
</td></tr>
<!--年历区-->
<tr><td class=dBot2>公元
<input type=text id=Cml_y size=4 maxlength=5 value='2008'>年
<input type=text id=Cml_m size=2 maxlength=2 value='01'>月
<input type=text id=Cml_d size=2 maxlength=2 value='01'>日
<input type=text id=Cml_his size=8 value='12:00:00'>
<input type=button value="确定" onclick='ML_calc()'>
</td></tr>
<tr><td class=dBot2 id=Cal6></td></tr>
<!--版权区-->
<tr><td class=dBot2>
<b>提示:</b>如果按住ctrl键不放,再将鼠标移出日历区,即可保持该日信息摘要不变;日月升降是本地时间,气朔时刻是北京时间;输入公元前212年方法是B212或*212或-211;BC4713至9999年有效,<font color=red><b><i>BC722年以后与实历相符。</i></b></font>“表一”为当日真分点地心坐标,“表二”为站心坐标。
</td></tr>
<tr><td class=dBot2 align=center> <font color=red> 邮箱 xunmeng04@163.com 许剑伟(福建莆田第十中学)保留版权 © 2008</font></td></tr>
</table>
</td>
</tr>
</table>
<div id=Cal_pan style="font-size:12px; position:absolute; z-index:1; width:160;FILTER: shadow(color=#333333,direction=135);display:none">
<div id=Cal_pan_in style="background-color:#3333A0;width:150;text-align:center;line-height: 150%; color:#FFFFFF; display:block;filter:Alpha(opacity=80)">abc</div><br>
</div>
<script language=javascript>
Cc_db.innerText=
'*地名,纬度,经度,海拔(米)\r\n'
+'北京, 39.93, -116.37, 31 # 天津, 39.14, -117.19, 3\r\n'
+'太原, 37.87, -112.56, 778 # 沈阳, 41.78, -123.41, 41\r\n'
+'长春, 43.89, -125.31, 237 # 上海, 31.23, -121,46, 4.5\r\n'
+'南京, 32.05, -118.76, 9 # 杭州, 30.29, -120.17, 42\r\n'
+'拉萨, 29.66, -91.13, 3658 # 莆田, 25.43, -119.02, 30\r\n'
+'西安, 34.27, -108.95, 397 # 银川, 38.46, -106.26, 1112\r\n'
+'香港, 22.28, -114.15, 32 # 乌市, 43.79, -87.61, 918\r\n'
function showHelp(f){
var s;
if(f==0){ help.innerHTML='', help.style.display='none'; return; }
if(f==1) s='aa';
if(f==2)
s=' 1、“北/南”钩上,表示表中方位0度为正北,适用于南半球,此时表中左西右东。<br>'
+' 2、日食放大图中,红圆为太阳,黄圆为月亮,它们纵向距离是赤纬差,横向则是赤经值,左东右西。(均不含大气折射修正)。<br>'
+' 3、月食放大图中,深黑圆是地球本影在距离地心R处的截面,R是该时刻地月质心距。淡黑圆是地球半影,定义方式与本影的相似。月食发生时,还会出现一个小灰圆,表示月亮,其大小决定于月亮的地心视半径。图中影子中心与月亮中心的纵向差为它们的黄纬差,横向差为黄纬差,左东右西,月东行。不考虑地标对月食的影响。<br>'
+' 4、“UTC/TD”钩上,表示当前输入的是当地时间,不打钩,表示力学时。<br>'
+' 5、日食发生时,表中可能会出现一个小三角形,它的顶角表示月影轴与地球的交点,在该位置上此刻发生中心食。软件没用帮助用户计算该处发生全食还是环食,用户可以把该处的地标输入,重新计算即可精确判断。<br>'
+' 6、本图表中,东经为负,西经为正。';
help.style.display='block';
help.innerHTML = '<a href="javascript:showHelp(0)">关闭</a><br>'+s;
}
var lun = new Lunar(); //月历全局对象
var msc = new sun_moon(); //日月计算全局对象
var curJD; //现在日期
var curTZ; //当前时区
function tu_calc(ly,xm){ //ly是取时间的方式,xm是计算的项目
tu1.init(Can1); //画布初始化
var jd; //J2000起算的儒略日数(当地时间)
var vJ = (Cb_J.value-0)/180*Math.PI;
var vW = (Cb_W.value-0)/180*Math.PI;
//取时间
if(ly!=1) jd = JD.JD( year2Ayear(Cb_y.value), Cb_m.value-0, (Cb_d.value-0)+timeStr2hour(Cb_t.value)/24 ) - J2000; //取屏幕时间
if(ly==1) jd = (new Date())/86400000-10957.5-curTZ/24; //取现在时间(UTC)
if(ly==2) jd -= Cb_step.value/86400;
if(ly==3) jd += Cb_step.value/86400;
if(ly==4) jd -=29.53;
if(ly==6) jd +=29.53;
if(ly==4||ly==5||ly==6) jd = XL.MS_aLon_t2( Math.floor((jd+8)/29.5306)*pi2 )*36525 - curTZ/24-JD.deltatT2(jd);
if(ly==7) jd -=29.53;
if(ly==9) jd +=29.53;
if(ly==7||ly==8||ly==9) jd = XL.MS_aLon_t2( Math.floor((jd-4)/29.5306)*pi2+Math.PI )*36525 - curTZ/24-JD.deltatT2(jd);
//置时间
var ts=JD.setFromJD_str(jd+J2000);
Cb_y.value = ts.substr(0,5)-0;
Cb_m.value = ts.substr(6,2);
Cb_d.value = ts.substr(9,2);
Cb_t.value = ts.substr(12,8);
if(ly==1||ly==4||ly==5) Cb_ut.checked=true;
if(Cb_ut.checked) jd += curTZ/24+JD.deltatT2(jd); //转为力学时
if(xm==1){//日食甚计算等
var i,td=' TD',mc=new Array('初亏','食甚','复圆','食既','生光');
rsPL.secMax(jd, vJ,vW, Cb_high.value-0);
var s='时间表 (日'+rsPL.LX+'食)\r\n'
for(i=0;i<5;i++){
jd=rsPL.sT[i]; if(!jd) continue;
if(Cb_ut.checked) jd -= curTZ/24+JD.deltatT2(jd),td=' UTC'; //转为UTC(本地时间)
s+=mc[i]+':'+JD.setFromJD_str(jd+J2000)+td+'\r\n';
}
alert(s);
return;
}
if(xm==2){//月食甚计算等
var i,s='时间表:\r\n',td=' TD',mc=new Array('食甚','初亏','复圆','半影食始','半影食终','食既','生光');
ysPL.lecMax(jd);
for(i=0;i<7;i++){
jd=ysPL.lT[i]; if(!jd) continue;
if(Cb_ut.checked) jd -= curTZ/24+JD.deltatT2(jd),td=' UTC'; //转为UTC(本地时间)
s+=mc[i]+':'+JD.setFromJD_str(jd+J2000)+td+'\r\n';
}
alert(s);
return;
}
if(xm==3){ //南北界计算
var i,s='南北界点:经度 纬度\r\n',mc=new Array('食中心点','本影北界','本影南界','半影北界','半影南界');
rsPL.nbj(jd);
for(i=0;i<5;i++){
s += mc[i]+':';
if(rsPL.V[i*2+1]==100) { s += '无 无\r\n'; continue; }
s += (rsPL.V[i*2]/Math.PI*180).toFixed(5)+' '+(rsPL.V[i*2+1]/Math.PI*180).toFixed(5)+'\r\n';
}
s += '中心类型:'+rsPL.Vc+'食\r\n';
s += '本影南北界点 约相距'+rsPL.Vb;
alert(s);
return;
}
msc.calc(jd,vJ,vW,Cb_high.value-0);
if(Cb_sjzb.checked){
tu1.move4(tu1.sun, msc.sCJ,msc.sCW, msc.gst);
tu1.move4(tu1.moon,msc.mCJ,msc.mCW, msc.gst);
}else{
tu1.move(tu1.sun, msc.sPJ,msc.sPW, Cb_bei.checked);
tu1.move(tu1.moon,msc.mPJ,msc.mPW, Cb_bei.checked);
}
var msHJ = rad2mrad(msc.mHJ-msc.sHJ);
var s='',J1,W1,J2,W2, sr,mr,er,Er,d0,d1,d2;
if(msHJ<2/180*Math.PI||msHJ>358/180*Math.PI){ //日食图表放大计算
J1=msc.mCJ2,W1=msc.mCW2, J2=msc.sCJ2, W2=msc.sCW2; //用未做大气折射的来计算日食
sr=msc.sRad, mr=msc.mRad;
d1=ZB.j1_j2(J1,W1,J2,W2)*rad,d0=mr+sr;
tu1.move2a(J1,W1,J2,W2,mr,sr);
tu1.move3(msc.zx_J,msc.zx_W,Cb_phSave.checked);
var s2 = '此刻月亮本影中心线不经过地球。';
if(msc.zx_W!=100) s2 = '食中心地标:经 '+(msc.zx_J/Math.PI*180).toFixed(5) +' 纬 '+ (msc.zx_W/Math.PI*180).toFixed(5);
s = '日月站心视半径 '+m2fm(sr,2,0)+'及'+m2fm(mr,2,0)+' <font color=red>'+s2+'</font><br>'
+ '日月中心视距 '+m2fm( d1,2,0 ) +' 日月半径和 '+m2fm(d0,2,0) + ' 半径差 ' + m2fm(sr-mr,2,0) +' 距外切 '+m2fm(d1-d0,2,0);
}else
if(msHJ>170/180*Math.PI&&msHJ<190/180*Math.PI){ //月食图表放大计算
J1=msc.mCJ,W1=msc.mCW, J2=msc.sCJ+Math.PI, W2=-msc.sCW;
er=msc.eShadow, Er=msc.eShadow2, mr=msc.e_mRad; //用未做大气折射的来计算日食
d1=ZB.j1_j2(J1,W1,J2,W2)*rad, d0=mr+er,d2=mr+Er;
tu1.move2b(J1,W1,J2,W2, mr,er,Er);
s= '本影半径 '+m2fm(er,2,0)+' 半影半径 '+m2fm(Er,2,0)+' 月亮地心视半径 '+m2fm(mr,2,0)+'<br>'
+ '影月中心距 '+m2fm( d1,2,0 ) +' 影月半径和 '+m2fm(d0,2,0) +' 距相切 <font color=red>'+m2fm(d1-d0,2,0) +'</font> 距第二相切 '+m2fm(d1-d2,2,0) ;
}else tu1.ecShow(0,0,0,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -