⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 index.htm

📁 寿星万年历 基于天文算法的万年历 javascript 年代范围大 精度高
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<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>&nbsp;<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="&lt;-" onclick="tu_calc(4,0)"><input type=button value="朔" onclick="tu_calc(5,0)"><input type=button value="+&gt;" onclick="tu_calc(6,0)">
 <input type=button value="&lt;-" onclick="tu_calc(7,0)"><input type=button value="望" onclick="tu_calc(8,0)"><input type=button value="+&gt;" onclick="tu_calc(9,0)">
 步长<input type=text id=Cb_step size=3 value=300 checked>秒
 <input type=button value="&lt;-" onclick="tu_calc(2,0)"><input type=button value="确定" onclick="tu_calc(0,0)"><input type=button value="+&gt;" 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="&lt;-" onclick="dfRS(1)"><input type=button value="朔" onclick="dfRS(0)"><input type=button value="+&gt;" 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 许剑伟(福建莆田第十中学)保留版权 &copy; 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 + -