另一个日历(根据农历网上的寿星万年历修改)最新修改适应FF
2008-12-03 19:38
1056 查看
td.body2{font-family: 宋体;font-size: 12px}
td.body2 input {font-family: 宋体;font-size: 12px}
td.head {text-align: center; background-color: #F0F0F0; color: #000000; font-size: 14px; font-weight: bold}
td.body {font-family: 宋体; text-align: center;font-size: 12px}
span.da {font-family: Arial Black; text-align: center;font-size: 24px}
span.da2{font-family: Arial Black; text-align: center;font-size: 24px;color: #FF0000}
span.pb {font-family: Arial Black; text-align: center;font-size: 24px;color: violet}
span.cur{background-color:#90D050}
abc
//==========================
//页面生成有关的函数
//==========================
/********************
当前时间初始化
*********************/
var now=new Date();
var nowY,nowM,nowD,nowJD;
JD.Y =nowY = now.getFullYear();
JD.M = nowM = now.getMonth()+1;
JD.D = nowD = now.getDate();
JD.h = JD.m = JD.s =0;
nowJD = int2(JD.toJD()+0.5)-2451545;
Cal_y.value = nowY;
Cal_m.value = nowM;
/********************
即时坐标计算等
*********************/
function shiCha(t,a,dL,E){ //时差计算
t/=10;
var L, t2=t*t,t3=t2*t,t4=t3*t,t5=t4*t;
L = 1753469512 + 6283319653318*t + 529674*t2 + 432*t3 - 1124*t4 - 9*t5 + 630 * Math.cos(6+3*t);
L = L/1000000000 + Math.PI; //太阳平黄经
L = L - 20.5/rad - a + dL*Math.cos(E); //a是太阳视赤经
L = rad2mrad(L);
if(L>Math.PI) L-=pi2;
return L;
}
function taiYangShi(jd,L,c){ //转入格林尼治时间UT及本地经度及时差,c=0返回本地平太阳时,c=时差就返回真太阳时,返回的单位是弧度
var t=jd-L/pi2+c/pi2;
JD.setFromJD(t+J2000);
return JD.toStr().substr(12,8);
}
function zb_calc(T,L,fa){ //T是力学时,站点经纬L,fa
var s,z=new Array(),z2=new Array(),z3=new Array();
var dt = JD.deltatT2(T); //TD-UT
var jd = T-dt; //得到J2000起算的的儒略数
T/=36525; ZB.nutation(T); //章动计算
var E = ZB.hcjj(T)+ZB.dE; //真黄赤交角
var dL = ZB.dL; //黄经章动
var gst= ZB.gst(jd,dt) + ZB.dL*Math.cos(E); //真恒星时(不考虑非多项式部分)
var ShiJ;
//月球坐标测试
XL.M_coord(T,z,-1,-1,-1); //月球坐标
z[0] = rad2mrad( z[0]+ZB.gxc_moonLon(T)+ZB.dL ); //补上月球光行差及章动
z[1] += ZB.gxc_moonLat(T);
z2[0] = z[0], z2[1] = z[1], z2[2] = z[2];
ZB.llrConv( z2, E ); //转为赤道坐标
ShiJ = rad2mrad(gst - L - z2[0]); //得到此刻天体时角
if( ShiJ>Math.PI ) ShiJ -= pi2;
z3[0] = (Math.PI/2-ShiJ); z3[1] = z2[1]; z3[2]=z2[2]/1.496e8; //转到相对于地平赤道分点的赤道坐标
ZB.parallax(z3,ShiJ,fa,0); //视差修正
ZB.llrConv( z3, Math.PI/2-fa ); //转到地平坐标(只改经纬度)
z3[0] = rad2mrad( Math.PI/2-z3[0] );
if(z3[1]>0) z3[1] += ZB.AR2(z3[1]); //大气折射修正
s = '月球的当日真分点地心坐标
';
s += '视黄经 ' + rad2str(z[0],0);
s += '视黄纬 ' + rad2str(z[1],0)+'
';
s += '视赤经 ' + rad2str(z2[0],1);
s += '视赤纬 ' + rad2str(z2[1],0)+'
';
s += '径距离 ' + int2(z[2]+0.5)+'千米 ';
s += '平时角 ' + rad2str(ShiJ,0) + '
';
s += "方位角 " + rad2str(z3[0],0);
s += "高度角 " + rad2str(z3[1],0) + "
";
s += "亮面比例 " + ( int2(XL.moonIll(T)*100000+0.5)/1000 )+'% ';
s += "站心视半径 " + (int2(XL.moonRad(z[2],z3[1])/60*100+0.5)/100)+"'
";
XL.E_coord(T,z,-1); //地球坐标
z[0] = rad2mrad(z[0]+Math.PI+ZB.gxc_sunLon(T)+ZB.dL); //补上太阳光行差及章动
z[1] =-z[1] + ZB.gxc_sunLat(T); //z数组为太阳地心黄道视坐标
z2[0] = z[0], z2[1] = z[1], z2[2] = z[2];
ZB.llrConv( z2, E ); //z2太阳地心赤道坐标
ShiJ = rad2mrad(gst - L - z2[0]); //得到此刻天体时角
if( ShiJ>Math.PI ) ShiJ -= pi2;
z3[0] = (Math.PI/2-ShiJ); z3[1] = z2[1]; z3[2]=z2[2]; //转到相对于地平赤道分点的赤道坐标
//ZB.parallax(z3,ShiJ,fa,0); //视差修正
ZB.llrConv( z3, Math.PI/2-fa );
z3[0] = rad2mrad( Math.PI/2-z3[0] );
if(z3[1]>0) z3[1] += ZB.AR2(z3[1]); //大气折射修正
z3[1] -= 8.794/rad/z3[2]*Math.cos(z3[1]); //直接在地平坐标中视差修正(这里把地球看为球形,精度比ZB.parallax()稍差一些)
s += '太阳的当日真分点地心坐标
';
s += '视黄经 ' + rad2str(z[0],0);
s += '视黄纬 ' + rad2str(z[1],0) + '
';
s += '视赤经 ' + rad2str(z2[0],1);
s += '视赤纬 ' + rad2str(z2[1],0) + '
';
s += '径距离 ' + (int2(z2[2]*1000000+0.5)/1000000) + 'AU ';
s += '平时角 ' + rad2str(ShiJ,0) + '
'; //天顶到天体视赤经的差
s += '方位角 ' + rad2str(z3[0],0);
s += '高度角 ' + rad2str(z3[1],0) + '
';
var sc=shiCha(T,z2[0],dL,E); //时差
var sc_str=rad2str(sc,1);
sc_str = sc_str.substr(0,1)+sc_str.substr(6,10);
s += '时差 ' + sc_str + '
';
s += '本地平太阳时 ' + taiYangShi(jd,L,0)+' 真太阳时 '+ taiYangShi(jd,L,sc)+'
';
return s;
}
function RTS1(jd,vJ,vW){
SZJ.calcRTS(jd, 1, vJ, vW, -8); //升降计算,使用北时时间,-8指东8区
var s, ob = SZJ.rts[0];
JD.setFromJD(jd+J2000);
s = '日期' + JD.toStr().substr(0,11)+'
';
s += '日出 '+ob.s +' 日上中天 '+ob.z +'
';
s += '日落 '+ob.j +' 月上中天 '+ob.Mz+'
';
s += '月出 '+ob.Ms+' 晨光开始 '+ob.c +'
';
s += '月落 '+ob.Mj+' 昏影终止 '+ob.h +'
';
s += '昼长 '+ob.sj+' 光照时间 '+ob.ch+'
';
return s;
}
/********************
cookie读写函数
*********************/
function getCookie(name) {
var start,end, s = document.cookie;
start = s.indexOf(name + '='); if (start == -1) return '';
start += name.length + 1;
end = s.indexOf(';', start);
if (end == -1) end = s.length;
return unescape(s.substring(start, end));
}
function setCookie(name,value){
var Days = 700; //此 cookie 将被保存多天
var exp = new Date();
exp.setTime(exp.getTime() + Days*86400*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
/****************
地理经纬度选择的页面控制函数
****************/
function addOp(sel,v,t){
var Op = document.createElement("OPTION");
Op.value=v;
Op.text=t;
Op.innerText=t;
//sel.add(Op);
sel.appendChild(Op);
}
var Cal_zdzb = document.getElementById('Cal_zdzb');
var Cal2 = document.getElementById('Cal2');
var Cal5 = document.getElementById('Cal5');
var Clock2_dq = document.getElementById('Clock2_dq');
var Cal6 = document.getElementById('Cal6');
var Cal3 = document.getElementById('Cal3');
var Cal4 = document.getElementById('Cal4');
var YMBG = document.getElementById('YMBG');
var Clock1 = document.getElementById('Clock1');
var Clock2 = document.getElementById('Clock2');
var Cal_zb = document.getElementById('Cal_zb');
var Cal_pan = document.getElementById('Cal_pan');
var Cal_pan_in = document.getElementById('Cal_pan_in');//
function change2(){
var i,v = new JWdecode( Sel2.options[Sel2.selectedIndex].value );
Sel2.vJ = v.J; Sel2.vW = v.W;
Cal_zdzb.innerHTML = 'L='+rad2str2(v.J)+' φ='+rad2str2(v.W);
if(Cal5.bak){
Cal5.bak = RTS1(nowJD, v.J, v.W);
Cal5.innerHTML = Cal5.bak;
}
setCookie('Sel1',Sel1.selectedIndex);
setCookie('Sel2',Sel2.selectedIndex);
}
function change(def){
if(def) Sel1.selectedIndex = getCookie('Sel1');
Sel2.length=0;
var i, ob=JWv[ Sel1.options[Sel1.selectedIndex].value-0 ];
for(i=1; iw) h2++;
}
if(JD.M==10){
var w = ( 6+(jd-JD.D+31)%7 )%7; //本月最后一天的星期
if(31-JD.D>w) h2++;
}
if(JD.M>4&&JD.M<10) h2++;
}
JD.setFromJD(jd+J2000+h2/24);
Clock2.innerHTML = JD.toStr() + (h2==h?'':'¤');
}
for(i=0;i29?'大 ':'小 ') + ob.Ldc + '日
';
s += ob.Lyear2+'年 '+ob.Lmonth2+'月 '+ob.Lday2+'日
';
s += '回历['+ob.Hyear+'年'+ob.Hmonth+'月'+ob.Hday+'日]
';
if(ob.yxmc) s += ob.yxmc+' '+ob.yxsj+' ';
if(ob.jqmc) s += '定'+ob.jqmc+' '+ob.jqsj+'
';
else { if(ob.Ljq) s += ob.Ljq+'
';}
if(ob.A) s += ob.A +' ';
if(ob.B) s += ob.B +' ';
if(ob.C) s += ob.C;
// Cal_pan.style.display = 'block';
//Cal_pan.style.position = "absolute";
Cal_pan.style.display = ""; //先显示再传值屏幕流畅
Cal_pan_in.innerHTML = s;
//长度格式("100":错)firefox下必须为"100px"
Cal_pan.style.left = (event.x?event.x:event.pageX)+(document.body?document.body.scrollLeft:document.documentElement.scrollLeft)-80 + "px";
Cal_pan.style.top = (event.y?event.y:event.pageY)+(document.body?document.body.scrollTop:document.documentElement.scrollTop) +((ob.weeki+2n+1) return s.substr(0,n)+'..';
return s;
}
function getLunar(event){ //月历页面生成
var i,j, c,c2, cr="",isM;
var lun = Lunar.lun, ob; //日历物件
var By = Cal_y.value-0;
var Bm = Cal_m.value-0;
Lunar.calc2(By,Bm,1); //农历计算
//年份处理
Cal2.innerHTML = lun.nianhao.nh+' 农历'+lun.Ly+'年【'+lun.ShX+'年】'; //干支纪年
//月历处理
var ta0='';
for(i=0;i'+ob.Ljq+''; //取节气
if(ob.A) c += '' +strTu(ob.A,4)+'';
if(!c && ob.B) c = ''+strTu(ob.B,4)+'';
if(!c && ob.Ldc=="初一") c = ob.Lleap + ob.Lmc +'月'+ (ob.Ldn==30?'大':'小'); //农历历月(闰月及大小等)
if(!c) c = ob.Ldc; //取农历日名称
if(ob.yxmc=="朔") isM = '●'; //取月相
if(ob.yxmc=="望") isM = '●'; //取月相
if(ob.jqmc) isM += '◆'; //定气标记
if(ob.Fjia) c2 = 'class=da2'; else c2 = 'class=da'; //节日置红色
if(ob.PB) c2 = 'class=pb';
c2 += ' onmouseover="showMessD('+i+',0,event)"';
c2 += ' onmouseout ="showMessD(-1,0,event)"';
c2 = '' +ob.d + ''; //公历的日名称
if(nowY==By && nowM==Bm && nowD==ob.d){
c2=''+c2+''; //今日标识
showMessD(i,1,event);
}
cr += ''+c2+'
'+isM+c+' ';
if(i==lun.dn-1) { for(j=0;j<6-ob.week;j++) cr+=' '; } //末行后面的空单元格
if(i==lun.dn-1||ob.week==6) ta0+=''+cr+' ', cr="";
}//end For
Cal3.innerHTML=''+ta0+'
';
var b1='月首:',b2='朔望:',b3='弦月:',b4='定气:';
for(i=0;i=9999) { alert('到顶了!'); return; }
Cal_y.value = y+1;
}
getLunar();
}
function changeMonth(ud){ //跳到上(或下)下月
var y,m;
y = Cal_y.value-0;
m = Cal_m.value-0;
if(ud==0){
if(m<=1 && y<=-4712) { alert('到顶了!'); return; }
if(m<=1) Cal_m.value = 12, Cal_y.value = y-1;
else Cal_m.value = m-1;
}
if(ud==1){
if(m>=12 && y>=9999) { alert('到顶了!'); return; }
if(m>=12) Cal_m.value = 1, Cal_y.value = y+1;
else Cal_m.value = m+1;
}
if(ud==2){
Cal_y.value = nowY;
Cal_m.value = nowM;
}
getLunar();
}
//////////
//生日
//////////
function searchBir(birthdayStr)
{//查所在年某人的生日
// var birthday = '0527[Y]';
var ylMonth,birthday;
if(birthdayStr.length==5&&birthdayStr.substr(4,1)=='Y')
{
birthday=birthdayStr.substr(0,4);
ylMonth=Cal_y.value*100 + Math.floor(birthday/100);
}
else{
birthday=birthdayStr;
var mon = Math.floor(birthday/100);
var day = birthday%100;
var year = Cal_y.value;//new Date().getFullYear();
ylMonth = Lunar.searchLdayInMonth(year-0,mon,day);//找到生日所在的农历月份
}
if(birthday<=0)
{
return;
}
//要能输入数字~~~
Cal_y.value = Math.floor(ylMonth/100);
Cal_m.value = ylMonth%100;
getLunar();
}
function zb_calc2() { //手动坐标计算
var ct=Cal_T.value;
if(ct.length!=20) {alert('时间串的长度不正确'); return;}
JD.Y=ct.substr(0,5)-0;
JD.M=ct.substr(6,2)-0;
JD.D=ct.substr(9,2)-0;
JD.h=ct.substr(12,2)-0;
JD.m=ct.substr(15,2)-0;
JD.s=ct.substr(18,2)-0;
ct=JD.toJD()-J2000;
Cal_zb.innerHTML = zb_calc(ct, Sel2.vJ-0, Sel2.vW-0); //传入UT时间(J2000.0起算)
}
function tick() { //即时坐标计算
var now = new Date();
var jd = now/86400000-10957.5; //J2000起算的儒略日数
Clock1.innerHTML = now.toLocaleString();
change_dq_time(jd);
if(!Cal_pause.checked){
var dt = JD.deltatT2(jd); //TD-UT
var ct = jd+dt;
JD.setFromJD(ct+J2000);
Cal_T.value = JD.toStr();
Cal_zb.innerHTML = zb_calc(ct, Sel2.vJ-0, Sel2.vW-0); //传入力学时间(J2000.0起算)
}
window.setTimeout("tick()", 1000);
}
tick(); //触发时钟
document.body.onkeypress = function () {setFocus();}
td.body2 input {font-family: 宋体;font-size: 12px}
td.head {text-align: center; background-color: #F0F0F0; color: #000000; font-size: 14px; font-weight: bold}
td.body {font-family: 宋体; text-align: center;font-size: 12px}
span.da {font-family: Arial Black; text-align: center;font-size: 24px}
span.da2{font-family: Arial Black; text-align: center;font-size: 24px;color: #FF0000}
span.pb {font-family: Arial Black; text-align: center;font-size: 24px;color: violet}
span.cur{background-color:#90D050}
寿星万年历 2008版(V2.0) | ||||||||||||
本地时间 外地时间 省份 市 站点坐标 暂停 力学时 | function selectMonChange(op,evt) {//回车的时显示 if(evt.keyCode==13) { getLunar(); } } function setFocus(evt) {//alert(event.keyCode); if(evt.keyCode==13) { document.getElementById('Cal_y').select(); evt.keyCode=13; } }
| 年号 年 月 年历1 年历2 速查生日 | ||||||||||
许剑伟 2008年7月设计. 阿剑工作室 All Rights Reserved, © 2008 |
//==========================
//页面生成有关的函数
//==========================
/********************
当前时间初始化
*********************/
var now=new Date();
var nowY,nowM,nowD,nowJD;
JD.Y =nowY = now.getFullYear();
JD.M = nowM = now.getMonth()+1;
JD.D = nowD = now.getDate();
JD.h = JD.m = JD.s =0;
nowJD = int2(JD.toJD()+0.5)-2451545;
Cal_y.value = nowY;
Cal_m.value = nowM;
/********************
即时坐标计算等
*********************/
function shiCha(t,a,dL,E){ //时差计算
t/=10;
var L, t2=t*t,t3=t2*t,t4=t3*t,t5=t4*t;
L = 1753469512 + 6283319653318*t + 529674*t2 + 432*t3 - 1124*t4 - 9*t5 + 630 * Math.cos(6+3*t);
L = L/1000000000 + Math.PI; //太阳平黄经
L = L - 20.5/rad - a + dL*Math.cos(E); //a是太阳视赤经
L = rad2mrad(L);
if(L>Math.PI) L-=pi2;
return L;
}
function taiYangShi(jd,L,c){ //转入格林尼治时间UT及本地经度及时差,c=0返回本地平太阳时,c=时差就返回真太阳时,返回的单位是弧度
var t=jd-L/pi2+c/pi2;
JD.setFromJD(t+J2000);
return JD.toStr().substr(12,8);
}
function zb_calc(T,L,fa){ //T是力学时,站点经纬L,fa
var s,z=new Array(),z2=new Array(),z3=new Array();
var dt = JD.deltatT2(T); //TD-UT
var jd = T-dt; //得到J2000起算的的儒略数
T/=36525; ZB.nutation(T); //章动计算
var E = ZB.hcjj(T)+ZB.dE; //真黄赤交角
var dL = ZB.dL; //黄经章动
var gst= ZB.gst(jd,dt) + ZB.dL*Math.cos(E); //真恒星时(不考虑非多项式部分)
var ShiJ;
//月球坐标测试
XL.M_coord(T,z,-1,-1,-1); //月球坐标
z[0] = rad2mrad( z[0]+ZB.gxc_moonLon(T)+ZB.dL ); //补上月球光行差及章动
z[1] += ZB.gxc_moonLat(T);
z2[0] = z[0], z2[1] = z[1], z2[2] = z[2];
ZB.llrConv( z2, E ); //转为赤道坐标
ShiJ = rad2mrad(gst - L - z2[0]); //得到此刻天体时角
if( ShiJ>Math.PI ) ShiJ -= pi2;
z3[0] = (Math.PI/2-ShiJ); z3[1] = z2[1]; z3[2]=z2[2]/1.496e8; //转到相对于地平赤道分点的赤道坐标
ZB.parallax(z3,ShiJ,fa,0); //视差修正
ZB.llrConv( z3, Math.PI/2-fa ); //转到地平坐标(只改经纬度)
z3[0] = rad2mrad( Math.PI/2-z3[0] );
if(z3[1]>0) z3[1] += ZB.AR2(z3[1]); //大气折射修正
s = '月球的当日真分点地心坐标
';
s += '视黄经 ' + rad2str(z[0],0);
s += '视黄纬 ' + rad2str(z[1],0)+'
';
s += '视赤经 ' + rad2str(z2[0],1);
s += '视赤纬 ' + rad2str(z2[1],0)+'
';
s += '径距离 ' + int2(z[2]+0.5)+'千米 ';
s += '平时角 ' + rad2str(ShiJ,0) + '
';
s += "方位角 " + rad2str(z3[0],0);
s += "高度角 " + rad2str(z3[1],0) + "
";
s += "亮面比例 " + ( int2(XL.moonIll(T)*100000+0.5)/1000 )+'% ';
s += "站心视半径 " + (int2(XL.moonRad(z[2],z3[1])/60*100+0.5)/100)+"'
";
XL.E_coord(T,z,-1); //地球坐标
z[0] = rad2mrad(z[0]+Math.PI+ZB.gxc_sunLon(T)+ZB.dL); //补上太阳光行差及章动
z[1] =-z[1] + ZB.gxc_sunLat(T); //z数组为太阳地心黄道视坐标
z2[0] = z[0], z2[1] = z[1], z2[2] = z[2];
ZB.llrConv( z2, E ); //z2太阳地心赤道坐标
ShiJ = rad2mrad(gst - L - z2[0]); //得到此刻天体时角
if( ShiJ>Math.PI ) ShiJ -= pi2;
z3[0] = (Math.PI/2-ShiJ); z3[1] = z2[1]; z3[2]=z2[2]; //转到相对于地平赤道分点的赤道坐标
//ZB.parallax(z3,ShiJ,fa,0); //视差修正
ZB.llrConv( z3, Math.PI/2-fa );
z3[0] = rad2mrad( Math.PI/2-z3[0] );
if(z3[1]>0) z3[1] += ZB.AR2(z3[1]); //大气折射修正
z3[1] -= 8.794/rad/z3[2]*Math.cos(z3[1]); //直接在地平坐标中视差修正(这里把地球看为球形,精度比ZB.parallax()稍差一些)
s += '太阳的当日真分点地心坐标
';
s += '视黄经 ' + rad2str(z[0],0);
s += '视黄纬 ' + rad2str(z[1],0) + '
';
s += '视赤经 ' + rad2str(z2[0],1);
s += '视赤纬 ' + rad2str(z2[1],0) + '
';
s += '径距离 ' + (int2(z2[2]*1000000+0.5)/1000000) + 'AU ';
s += '平时角 ' + rad2str(ShiJ,0) + '
'; //天顶到天体视赤经的差
s += '方位角 ' + rad2str(z3[0],0);
s += '高度角 ' + rad2str(z3[1],0) + '
';
var sc=shiCha(T,z2[0],dL,E); //时差
var sc_str=rad2str(sc,1);
sc_str = sc_str.substr(0,1)+sc_str.substr(6,10);
s += '时差 ' + sc_str + '
';
s += '本地平太阳时 ' + taiYangShi(jd,L,0)+' 真太阳时 '+ taiYangShi(jd,L,sc)+'
';
return s;
}
function RTS1(jd,vJ,vW){
SZJ.calcRTS(jd, 1, vJ, vW, -8); //升降计算,使用北时时间,-8指东8区
var s, ob = SZJ.rts[0];
JD.setFromJD(jd+J2000);
s = '日期' + JD.toStr().substr(0,11)+'
';
s += '日出 '+ob.s +' 日上中天 '+ob.z +'
';
s += '日落 '+ob.j +' 月上中天 '+ob.Mz+'
';
s += '月出 '+ob.Ms+' 晨光开始 '+ob.c +'
';
s += '月落 '+ob.Mj+' 昏影终止 '+ob.h +'
';
s += '昼长 '+ob.sj+' 光照时间 '+ob.ch+'
';
return s;
}
/********************
cookie读写函数
*********************/
function getCookie(name) {
var start,end, s = document.cookie;
start = s.indexOf(name + '='); if (start == -1) return '';
start += name.length + 1;
end = s.indexOf(';', start);
if (end == -1) end = s.length;
return unescape(s.substring(start, end));
}
function setCookie(name,value){
var Days = 700; //此 cookie 将被保存多天
var exp = new Date();
exp.setTime(exp.getTime() + Days*86400*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
/****************
地理经纬度选择的页面控制函数
****************/
function addOp(sel,v,t){
var Op = document.createElement("OPTION");
Op.value=v;
Op.text=t;
Op.innerText=t;
//sel.add(Op);
sel.appendChild(Op);
}
var Cal_zdzb = document.getElementById('Cal_zdzb');
var Cal2 = document.getElementById('Cal2');
var Cal5 = document.getElementById('Cal5');
var Clock2_dq = document.getElementById('Clock2_dq');
var Cal6 = document.getElementById('Cal6');
var Cal3 = document.getElementById('Cal3');
var Cal4 = document.getElementById('Cal4');
var YMBG = document.getElementById('YMBG');
var Clock1 = document.getElementById('Clock1');
var Clock2 = document.getElementById('Clock2');
var Cal_zb = document.getElementById('Cal_zb');
var Cal_pan = document.getElementById('Cal_pan');
var Cal_pan_in = document.getElementById('Cal_pan_in');//
function change2(){
var i,v = new JWdecode( Sel2.options[Sel2.selectedIndex].value );
Sel2.vJ = v.J; Sel2.vW = v.W;
Cal_zdzb.innerHTML = 'L='+rad2str2(v.J)+' φ='+rad2str2(v.W);
if(Cal5.bak){
Cal5.bak = RTS1(nowJD, v.J, v.W);
Cal5.innerHTML = Cal5.bak;
}
setCookie('Sel1',Sel1.selectedIndex);
setCookie('Sel2',Sel2.selectedIndex);
}
function change(def){
if(def) Sel1.selectedIndex = getCookie('Sel1');
Sel2.length=0;
var i, ob=JWv[ Sel1.options[Sel1.selectedIndex].value-0 ];
for(i=1; iw) h2++;
}
if(JD.M==10){
var w = ( 6+(jd-JD.D+31)%7 )%7; //本月最后一天的星期
if(31-JD.D>w) h2++;
}
if(JD.M>4&&JD.M<10) h2++;
}
JD.setFromJD(jd+J2000+h2/24);
Clock2.innerHTML = JD.toStr() + (h2==h?'':'¤');
}
for(i=0;i29?'大 ':'小 ') + ob.Ldc + '日
';
s += ob.Lyear2+'年 '+ob.Lmonth2+'月 '+ob.Lday2+'日
';
s += '回历['+ob.Hyear+'年'+ob.Hmonth+'月'+ob.Hday+'日]
';
if(ob.yxmc) s += ob.yxmc+' '+ob.yxsj+' ';
if(ob.jqmc) s += '定'+ob.jqmc+' '+ob.jqsj+'
';
else { if(ob.Ljq) s += ob.Ljq+'
';}
if(ob.A) s += ob.A +' ';
if(ob.B) s += ob.B +' ';
if(ob.C) s += ob.C;
// Cal_pan.style.display = 'block';
//Cal_pan.style.position = "absolute";
Cal_pan.style.display = ""; //先显示再传值屏幕流畅
Cal_pan_in.innerHTML = s;
//长度格式("100":错)firefox下必须为"100px"
Cal_pan.style.left = (event.x?event.x:event.pageX)+(document.body?document.body.scrollLeft:document.documentElement.scrollLeft)-80 + "px";
Cal_pan.style.top = (event.y?event.y:event.pageY)+(document.body?document.body.scrollTop:document.documentElement.scrollTop) +((ob.weeki+2n+1) return s.substr(0,n)+'..';
return s;
}
function getLunar(event){ //月历页面生成
var i,j, c,c2, cr="",isM;
var lun = Lunar.lun, ob; //日历物件
var By = Cal_y.value-0;
var Bm = Cal_m.value-0;
Lunar.calc2(By,Bm,1); //农历计算
//年份处理
Cal2.innerHTML = lun.nianhao.nh+' 农历'+lun.Ly+'年【'+lun.ShX+'年】'; //干支纪年
//月历处理
var ta0='';
for(i=0;i'+ob.Ljq+''; //取节气
if(ob.A) c += '' +strTu(ob.A,4)+'';
if(!c && ob.B) c = ''+strTu(ob.B,4)+'';
if(!c && ob.Ldc=="初一") c = ob.Lleap + ob.Lmc +'月'+ (ob.Ldn==30?'大':'小'); //农历历月(闰月及大小等)
if(!c) c = ob.Ldc; //取农历日名称
if(ob.yxmc=="朔") isM = '●'; //取月相
if(ob.yxmc=="望") isM = '●'; //取月相
if(ob.jqmc) isM += '◆'; //定气标记
if(ob.Fjia) c2 = 'class=da2'; else c2 = 'class=da'; //节日置红色
if(ob.PB) c2 = 'class=pb';
c2 += ' onmouseover="showMessD('+i+',0,event)"';
c2 += ' onmouseout ="showMessD(-1,0,event)"';
c2 = '' +ob.d + ''; //公历的日名称
if(nowY==By && nowM==Bm && nowD==ob.d){
c2=''+c2+''; //今日标识
showMessD(i,1,event);
}
cr += '
'+isM+c+'
if(i==lun.dn-1) { for(j=0;j<6-ob.week;j++) cr+='
if(i==lun.dn-1||ob.week==6) ta0+='
}//end For
Cal3.innerHTML='
var b1='月首:',b2='朔望:',b3='弦月:',b4='定气:';
for(i=0;i=9999) { alert('到顶了!'); return; }
Cal_y.value = y+1;
}
getLunar();
}
function changeMonth(ud){ //跳到上(或下)下月
var y,m;
y = Cal_y.value-0;
m = Cal_m.value-0;
if(ud==0){
if(m<=1 && y<=-4712) { alert('到顶了!'); return; }
if(m<=1) Cal_m.value = 12, Cal_y.value = y-1;
else Cal_m.value = m-1;
}
if(ud==1){
if(m>=12 && y>=9999) { alert('到顶了!'); return; }
if(m>=12) Cal_m.value = 1, Cal_y.value = y+1;
else Cal_m.value = m+1;
}
if(ud==2){
Cal_y.value = nowY;
Cal_m.value = nowM;
}
getLunar();
}
//////////
//生日
//////////
function searchBir(birthdayStr)
{//查所在年某人的生日
// var birthday = '0527[Y]';
var ylMonth,birthday;
if(birthdayStr.length==5&&birthdayStr.substr(4,1)=='Y')
{
birthday=birthdayStr.substr(0,4);
ylMonth=Cal_y.value*100 + Math.floor(birthday/100);
}
else{
birthday=birthdayStr;
var mon = Math.floor(birthday/100);
var day = birthday%100;
var year = Cal_y.value;//new Date().getFullYear();
ylMonth = Lunar.searchLdayInMonth(year-0,mon,day);//找到生日所在的农历月份
}
if(birthday<=0)
{
return;
}
//要能输入数字~~~
Cal_y.value = Math.floor(ylMonth/100);
Cal_m.value = ylMonth%100;
getLunar();
}
function zb_calc2() { //手动坐标计算
var ct=Cal_T.value;
if(ct.length!=20) {alert('时间串的长度不正确'); return;}
JD.Y=ct.substr(0,5)-0;
JD.M=ct.substr(6,2)-0;
JD.D=ct.substr(9,2)-0;
JD.h=ct.substr(12,2)-0;
JD.m=ct.substr(15,2)-0;
JD.s=ct.substr(18,2)-0;
ct=JD.toJD()-J2000;
Cal_zb.innerHTML = zb_calc(ct, Sel2.vJ-0, Sel2.vW-0); //传入UT时间(J2000.0起算)
}
function tick() { //即时坐标计算
var now = new Date();
var jd = now/86400000-10957.5; //J2000起算的儒略日数
Clock1.innerHTML = now.toLocaleString();
change_dq_time(jd);
if(!Cal_pause.checked){
var dt = JD.deltatT2(jd); //TD-UT
var ct = jd+dt;
JD.setFromJD(ct+J2000);
Cal_T.value = JD.toStr();
Cal_zb.innerHTML = zb_calc(ct, Sel2.vJ-0, Sel2.vW-0); //传入力学时间(J2000.0起算)
}
window.setTimeout("tick()", 1000);
}
tick(); //触发时钟
document.body.onkeypress = function () {setFocus();}
相关文章推荐
- 使用JavaBean创建您的网上日历本 有的朋友曾经说过,如果有一个网上的日记本,或者一个网上的万年历能提醒自己到时去干什么事情就好了。其实呀,这样的日历本您自己也能做一个。不信你看下面的例子: 〈
- 整理修改网上流传的C#农历类
- 【同域】根据iframe中引用的网页的高度来修改父级页面的iframe高度-iframe自适应子页高度
- sqlserver2000 数据库分页查询[根据网上搜索到得sql修改,亲测,可用]
- 生成RNGCryptoServiceProvider随机数和随机gb2312一级中文(根据网上的修改)
- 基于ci框架 修改出来了一个带农历的万年历。
- sqlserver2000 数据库分页查询[根据网上搜索到得sql修改,亲测,可用]
- SQL之根据一个表去修改另一个表中的数据
- sql 根据关联 用一个表的值修改另一个表对应字段的值
- 另一个较完整的带农历的日历
- jquery 农历日历 可自适应
- 日历控件最新修改
- SQL - 根据关联,用一个表的值修改另一个表对应字段的值
- 日历的提醒内容可以根据需要修改
- 另一个较完整的带农历的日历
- 【原】正佳日历,WPF日历,农历,黄历,万年历
- 在控制台读取Excel的方法,可根据自身需要修改使用以适应其它平台使用。
- WPF日历,农历,黄历,万年历
- 在项目中获取系统日期转化为中国农历日历
- 修改Calendar(梅花雨)日历控件 兼容IE9 谷歌 火狐