中华农历论坛知识讨论区历法知识 → 公开修正后的《电脑医生万年历》历算核心代码


  共有28613人关注过本帖树形打印

主题:公开修正后的《电脑医生万年历》历算核心代码

帅哥哟,离线,有人找我吗?
chwc
  1楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
公开修正后的《电脑医生万年历》历算核心代码  发帖心情 Post By:2009/6/19 10:37:00

您无权查看精华帖子

[本帖被加为精华]
支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  2楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:38:00

//--公暦与連續紀日互轉--//
//日差天數
function D0(y,m,d){
  var ifG=ifGr(y,m,d,1);
  var monL=new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
  if(ifG)
    if((y%100!=0&&y%4==0)||(y%400==0))
      monL[2]+=1;
    else ;
  else
    if(y%4==0)
      monL[2]+=1;
    else ;
  var v=0;
  for(var i=0;i<=m-1;i++){
    v+=monL[i];
  }
  v+=d;
  if(y==1582){
    if(ifG==1)
      v-=10;
    if(ifG==-1)
      v=1/0;  //infinity
  }
  return v;
}
//反日差天數
function antiD0(y,x){
  var m=1;
  for(var j=1;j<=12;j++){
    var mL=D0(y,j+1,1)-D0(y,j,1);
    if(x<=mL||j==12){
      var m=j;
      break;
    }
    else
       x-=mL;
  }
  return 100*m+x;
}
//年差天數
function D(y){
  var v=(y-1)*365+floor((y-1)/4);  //Julian的年差天數
  if(y>1582)
    v+=-floor((y-1)/100)+floor((y-1)/400);  //Gregorian的年差天數
  return v;
}
//等效標準天數
function erD(y,m,d){
  var v=(y-1)*365+floor((y-1)/4)+D0(y,m,d)-2;  //Julian的等效標準天數
  if(y>1582)
    v+=-floor((y-1)/100)+floor((y-1)/400)+2;  //Gregorian的等效標準天數
  return v;
}
//儒略日
function JD(y,m,d,h,min,sec,zone){
  var ifG=ifGr(y,m,d,1);
  var jt=(h+(min+sec/60)/60)/24-0.5-zone/24;
  var jd=(ifG)?(erD(y,m,d)+1721425+jt):(erD(y,m,d)+1721425+jt);//儒略日
  return jd;
}
  function revJD(jd){ //儒略日數轉公曆
   var D='';var A='';var D3=0;var D4=0;var D5=0;var D6=365.25;
   var A=floor(jd+1-0.167);var F=tail(jd);//取得北京時間日數的整數部份A及小數部分F
   if(A>=2299239)D5=10; if(A>=2299239)D6=365.2425;
   var y=floor((A+D5)/D6)-4712;var y1=y;
   var dd9=round(JD(y1,1,1,20,0,0,8)*1000)/1000; 
   var u0D1=A-dd9+1;
   var sDt1=u0D1;
  var sD1=antiD0(y,floor(sDt1));
  var M=floor(sD1/100);
  var Dt=sD1%100;
  var D=Dt;
  if(y==1582&&M==10&&D>=5)D=Dt+10;
  var ymd=y+','+M+','+D;
 return ymd;
  }

 //--------字符串轉換函數--------//
 function dToStr(dv){//將單位天的純小數轉換成如5:08:02的時間格式
  var h=floor(dv*24);
  var min=floor((dv*24-h)*60);
  var sec=floor(((dv*24-h)*60-min)*60);
  if(min<10)
    min='0'+min;
   if(sec<10)
  sec='0'+sec;
  return h+':'+min+':'+sec;
 }
  function revJD2(jd){ //儒略日小數部分換成如5:08的時間格式
   var f=tail(jd-0.1665)//取得儒略日小數部分F
   var dv=f;
   var ymd=dToStr(dv);
 return ymd;
  }
//年份
function yearStr(v){
  if(v<=0){
    return '前'+(-v+1)+'年';
  }
  else{
    return v+'年';
  }
}
 //星期
 function dayStr(v){
  return '日一二三四五六'.charAt((v+1)%7);
 }
 //星座
 function szodStr(v){
  return '摩羯寶瓶雙魚白羊金牛雙子巨蟹獅子處女天秤天蠍射手'.substring(2*v,2*v+2)+'座';
 }
 //農暦月數
 var str=new Array('正','二','三','四','五','六','七','八','九','十','十一','十二');
 var str2=new Array('正','臘','一','二','三','四','五','六','七','八','九','十');
 var str3=new Array('子','丑','寓','卯','辰','巳','五','六','七','八','九','十');
 function lunMStr(v,b){
  var v0=abs(v);
  var vstr=str[(v0-1)%12];if(b==1)vstr=str2[(v0-1)%12];if(b==-1)vstr=str3[(v0-1)%12];
  if(v0==13)
    vstr='十三';
  if(v0==1&&b>=0)
    vstr='正';
  if(v0==0)
    vstr='XX';
  if(v<0)
    vstr='閏'+vstr;
  return vstr;
 }
//農暦中文日數
function lunDStr(v){
  var str='十一二三四五六七八九初十廿三';
  var vstr=str.charAt(floor(v/10)+10)+str.charAt(v%10);
  if(v==10)
    vstr='初十';
  return vstr;
}
//節氣
function sStr(v){
  return '小寒大寒立春雨水驚蟄春分清明穀雨立夏小滿芒種夏至小暑大暑立秋處暑白露秋分寒露霜降立冬小雪大雪冬至'.substring(2*v-2,2*v);
}
//公暦類型
function ifgStr(v){
  if(v==-1){
    alert('公暦暦法去掉了1582年10月5日至10月14日,因這十天在歷史上不存在!');
    return('不存在');
  }
  else
    return (v)?'格裏暦':'儒略暦';
}
//干支
var nlm = new Array('寅','卯','辰','巳','午','未','申','酉','戌','亥','子','丑');
var Gan=new Array("甲","乙","丙","丁","戊","己","庚","辛","壬","癸");
var Gan5=new Array("戊","己","庚","辛","壬","癸","甲","乙","丙","丁");
var sfw=new Array("南","東","北","西","南","東","北","西","南","東","北","西");
var Zhi=new Array("子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥");
var Zhi3=new Array("午","未","申","酉","戌","亥","子","丑","寅","卯","辰","巳");
AnimalIdx=["鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬"];
AnimalIdx2=["馬","羊","猴","雞","狗","豬","鼠","牛","虎","兔","龍","蛇"];
function gzStr(v){
  return '癸甲乙丙丁戊己庚辛壬'.charAt(v%10)+'亥子丑寅卯辰巳午未申酉戌'.charAt(v%12);
}


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  3楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:39:00

//-----農暦節氣計算函數---//
var ykche=new Array(///史實平氣擬合1
'1640650.479938','1642476.703182','1683430.515601','1752157.640664','1807675.003759','1883627.765182','1907369.128100','1936603.140413','1939145.524180','1947180.798300','1964362.041824','1987372.340971',
'1999653.819126','2007445.469786','2021324.917146','2047257.232342','2070282.898213','2073204.872850','2080144.500926','2086703.688963','2110033.182763','2111190.300888','2113731.271005','2120670.840263','2123973.309063',
'2125068.997336','2136026.312633','2156099.495538','2159021.324663','2162308.575254','2178485.706538','2178759.662849','2185334.020800','2187525.481425','2188621.191481')

var kche=new Array(///史實平氣擬合2
'-221','-216','-104','84','236','444','509','589','596','618','665','728','761','783','821','892','955','963','982','1000','1064','1067','1074','1093','1102','1105','1135','1190','1198','1207',
'1251','1252','1270','1276','1279');
var jkche=new Array(////史實平氣擬合3
'15.21842500','15.21874996',' 15.218750011','15.218749978','15.218620279','15.218612292','15.218449176','15.218425000','15.218466998',' 15.218524844','15.218533526','15.218513908','15.218530782',
'15.218535181','15.218526248','15.218519654','15.218425000','15.218515221','15.218530782','15.218523776','15.218425000','15.218425000','15.218515671','15.218425000','15.218425000','15.218477932','15.218472436',
'15.218425000','15.218425000','15.218461742','15.218425000','15.218445786','15.218425000','15.218425000','15.218437484');
var jkche2=new Array(///史實平氣擬合4
-3,-3,0,4,4,3,3,4,3,3,4,4,19,3,3,3,4,4,4,3,0,4,3,3,4,4,4,3,3,3,10,4,4,4,4);
////
function S(y,n,pd){  //pd取值為0或1,分別表示平氣和定氣,該函數返回節氣的D0值
  var yk=365.2423112;///yk=365.2422226;0.00008894
  var jk=y-2100;
  var j=0.000088931/3400*jk;if(y<2200)j=0;
  var yk2=yk-j;
  var juD=y*(yk2-6.4e-14*(y-100)*(y-100)-3.047e-8*(y-100))+15.218427*n+1721050.71301;//儒略日
  var tht=3e-4*y-0.372781384-0.2617913325*n;//角度
  var yrD=(1.945*sin(tht)-0.01206*sin(2*tht))*(1.048994-2.583e-5*y);//年差實均數
  var shuoD=-18e-4*sin(2.313908653*y-0.439822951-3.0443*n);//朔差實均
  //史實擬合
  var jkk=0;if(y>-216||y==-216&&n>=21)jkk=1;if(y>=-103)jkk=2;if(y>85||y==85&&n>=4)jkk=3;
  if(y>237||y==237&&n>=4)jkk=4;if(y>445||y==445&&n>=3)jkk=5;if(y>510||y==510&&n>=3)jkk=6;if(y>590||y==590&&n>=4)jkk=7;
  if(y>597||y==597&&n>=3)jkk=8;if(y>619||y==619&&n>=3)jkk=9;if(y>666||y==666&&n>=4)jkk=10;if(y>729||y==729&&n>=4)jkk=11;
  if(y>762||y==762&&n>=19)jkk=12;if(y>784||y==784&&n>=3)jkk=13;if(y>822||y==822&&n>=3)jkk=14;if(y>893||y==893&&n>=3)jkk=15;
  if(y>956||y==956&&n>=4)jkk=16;if(y>964||y==964&&n>=4)jkk=17;if(y>983||y==983&&n>=4)jkk=18;if(y>1001||y==1001&&n>=3)jkk=19;
  if(y>1064||y==1064&&n>=24)jkk=20;if(y>1068||y==1068&&n>=4)jkk=21;
  if(y>1075||y==1075&&n>=3)jkk=22;if(y>1094||y==1094&&n>=3)jkk=23;if(y>1103||y==1103&&n>=4)jkk=24;
  if(y>1106||y==1106&&n>=4)jkk=25;if(y>1136||y==1136&&n>=4)jkk=26;if(y>1191||y==1191&&n>=3)jkk=27;if(y>1199||y==1199&&n>=3)jkk=28;
  if(y>1208||y==1208&&n>=3)jkk=29;if(y>1252||y==1252&&n>=10)jkk=30;if(y>1253||y==1253&&n>=4)jkk=31;if(y>1271||y==1271&&n>=4)jkk=32;
  if(y>1277||y==1277&&n>=4)jkk=33;if(y>1280||y==1280&&n>=4)jkk=34;
  var yk2=ykche[jkk];///初數
  var k=kche[jkk];//年界
  var jk=jkche[jkk];////氣長
  var jk9=jkche2[jkk];///節差數
  //史實計算
  var ykd=(round(JD(y,1,1,20,0,0,8)*1000)/1000)-1;
  var yk3=jk*(jk9*1);
  var yk=(yk2*1)-(yk3*1);
  var jq=jk*(n+(24*(y-k-1)));
  var vj=jq+yk-ykd+0.5;if(y<-220||y>1646||y==1646&&n>=3)vj='';
  var vs=(pd)?(juD+yrD+shuoD-erD(y,1,0)-1721425):vj;//vj為古代平氣,現代定氣‘(juD+yrD+shuoD-erD(y,1,0)-1721425)’,現代平氣:‘(juD-erD(y,1,0)-1721425)’
  return vs;
}
function jqi(y,m,d,a){
  var mL=D0(y,m+1,1)-D0(y,m,1);if(y==1582&&m==10)mL=31;
  var yr2=yearStr(y);
  var sT00='';var sT0='';var sT1='';var sT2='';var sT3='';var sT4='';  var qSt='';var sDsStr1='';var ifsj1='';////節氣
  var sN00=2*m-3;
  var sDt00=S(y,sN00,1);if(a==3)sDt00=S(y,sN00);
  var sD00=antiD0(y,floor(sDt00));
  var sM00=floor(sD00/100);   ///節氣交接公暦月。
  sDate00=sD00%100;
  var sN0=2*m-2;
  var sDt0=S(y,sN0,1);if(a==3)sDt0=S(y,sN0);
  var sD0=antiD0(y,floor(sDt0));
  var sM0=floor(sD0/100);
  sDate0=sD0%100;
  sN1=2*m-1;
  var sDt1=S(y,sN1,1);if(a==3)sDt1=S(y,sN1);
  var sD1=antiD0(y,floor(sDt1));
  var sM1=floor(sD1/100);
  sDate1=sD1%100;
  sN2=2*m;
  var sDt2=S(y,sN2,1);if(a==3)sDt2=S(y,sN2);
  var sD2=antiD0(y,floor(sDt2));
  var sM2=floor(sD2/100);
  sDate2=sD2%100;if(y==1582&&m==10)sDate2=sDate2+10;
  var sN3=2*m+1;
  if(sN3>24)
  sN3=25;
  var sDt3=S(y,sN3,1);if(a==3)sDt3=S(y,sN3);
  var sD3=antiD0(y,floor(sDt3));
  var sM3=floor(sD3/100);
  sDate3=sD3%100;

  sN00=rem(sN00-1,24)+1;sN0=rem(sN0-1,24)+1;sN1=rem(sN1-1,24)+1; sN2=rem(sN2-1,24)+1; sN3=rem(sN3-1,24)+1;
  if(sDate2>mL) sDate2-=mL; var jqk=D0(y,m,d);var qk00=floor(sDt00);
  var qk0=floor(sDt0);var qk1=floor(sDt1);var qk2=floor(sDt2);var qk3=floor(sDt3);
  if(qk00<D0(y,m,1)||qk00>D0(y,m,mL)) sN00='';
  if(qk0<D0(y,m,1)||qk0>D0(y,m,mL)) sN0='';
  if(qk1<D0(y,m,1)||qk1>D0(y,m,mL)) sN1='';
  if(qk2<D0(y,m,1)||qk2>D0(y,m,mL)) sN2='';
  if(qk3<D0(y,m,1)||qk3>D0(y,m,mL)) sN3='';//
  sT00='%公暦'+yr2+sM00+'月'+sDate00+'日'+'東8區'+dToStr(tail(sDt00))+' 定'+sStr(sN00)+'<br>';if(sN00=='') sT00='';
  sT0='*公暦'+yr2+sM0+'月'+sDate0+'日'+'東8區'+dToStr(tail(sDt0))+' 定'+sStr(sN0)+'<br>';if(sN0=='') sT0='';
  sT1='&公暦'+yr2+sM1+'月'+sDate1+'日'+'東8區'+dToStr(tail(sDt1))+' 定'+sStr(sN1)+'<br>';if(sN1=='') sT1='';
  sT2='$公暦'+yr2+sM2+'月'+sDate2+'日'+'東8區'+dToStr(tail(sDt2))+' 定'+sStr(sN2);if(sN2=='')sT2='';
  sT3='<br>'+'#公暦'+yr2+sM3+'月'+sDate3+'日'+'東8區'+dToStr(tail(sDt3))+' 定'+sStr(sN3);if(sN3=='')sT3='';
  var qSt5='';if(a==1)qSt5='定';if(a==2)qSt5='<font color=#808000>'+'◆</font>';
  if(jqk==qk00)if(sT00==''){sDsStr1='|'}else{sDsStr1=qSt5+sStr(sN00)+':東8區'+dToStr(tail(sDt00));}
  if(jqk==qk0)if(sT0==''){sDsStr1='|'}else{sDsStr1=qSt5+sStr(sN0)+':東8區'+dToStr(tail(sDt0));}
  if(jqk==qk1)if(sN1==''){sDsStr1='|'}else{sDsStr1=qSt5+sStr(sN1)+':東8區'+dToStr(tail(sDt1));}
  if(jqk==qk2)if(sN2==''){sDsStr1='|'}else{ sDsStr1=qSt5+sStr(sN2)+':東8區'+dToStr(tail(sDt2));} ///
  if(jqk==qk3)if(sT3==''){sDsStr1='|'}else{sDsStr1=qSt5+sStr(sN3)+':東8區'+dToStr(tail(sDt3));}
 
  if(jqk==qk00)if(sT00==''){qSt=''}else{qSt=qSt5+sStr(sN00);}
  if(jqk==qk0)if(sT0==''){qSt=''}else{qSt=qSt5+sStr(sN0);}
  if(jqk==qk1)if(sT1==''){qSt=''}else{qSt=qSt5+sStr(sN1);}
  if(jqk==qk2)if(sT2==''){qSt=''}else{ qSt=qSt5+sStr(sN2);}
  if(jqk==qk3)if(sT3==''){qSt=''}else{qSt=qSt5+sStr(sN3);}
  if(a==1){return sDsStr1;}else{
  if(a==2){return qSt;}else{
  if(a==3){return qSt;}else{
  return sT00+sT0+sT1+sT2+sT3;}}}
  }/////節氣計算結束
function siju(y,m,d,h){///四季
 var djr=(D0(y,m,d)+(h+1)/24);
 if(djr>=(y,3,1)&&djr<S(y,9,1))
   var gzM=0;
 if(djr>=S(y,9,1)&&djr<S(y,15,1))
   var gzM=1;
 if(djr>=S(y,15,1)&&djr<S(y,21,1))
   var gzM=2;
 if(djr>=S(y,21,1)||djr<S(y,3,1))
   var gzM=3;
 return gzM;
}


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  4楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:40:00

  function qisiehou(y1,m1,d1){//72物候
        var djt=D0(y1,m1,d1);var xs1='';
 if(djt<=floor(S(y1,-1,1))+3){xs1='鹖鴠不鳴';}
 else if(djt>floor(S(y1,-1,1))+3 && djt<=floor(S(y1,-1,1))+8){xs1='虎始交';}
 else if(djt>floor(S(y1,-1,1))+8 && djt<floor(S(y1,0,1))-1){xs1='荔挺出';}
 else if(djt>=floor(S(y1,0,1))-1 && djt<=floor(S(y1,0,1))+3){xs1='蚯蚓結';}
 else if(djt>floor(S(y1,0,1))+3 && djt<=floor(S(y1,0,1))+8){xs1='麋鹿解';}
 else if(djt>floor(S(y1,0,1))+8 && djt<floor(S(y1,1,1))-1){xs1='水泉動';}
 else if(djt>=floor(S(y1,1,1))-1 && djt<=floor(S(y1,1,1))+3) {xs1='雁北鄉';}
 else if(djt>floor(S(y1,1,1))+3 && djt<=floor(S(y1,1,1))+8) {xs1='鵲始巢';}
 else if(djt>floor(S(y1,1,1))+8 && djt<floor(S(y1,2,1))-1){xs1='鳺始鴝';}
 else if(djt>=floor(S(y1,2,1))-1 && djt<=floor(S(y1,2,1))+3){xs1='雞始乳';}
 else if(djt>floor(S(y1,2,1))+3 && djt<=floor(S(y1,2,1))+8){xs1='征鳥厲疾';}
 else if(djt>floor(S(y1,2,1))+8 && djt<floor(S(y1,3,1))-1){xs1='水澤腹堅';}
 else if(djt>=floor(S(y1,3,1))-1 && djt<=floor(S(y1,3,1))+3){xs1='東風解凍';}
 else if(djt>floor(S(y1,3,1))+3 && djt<=floor(S(y1,3,1))+8){xs1='蟄蟲始振';}
 else if(djt>floor(S(y1,3,1))+8 && djt<floor(S(y1,4,1))-1){xs1='魚上冰';}
 else if(djt>=floor(S(y1,4,1))-1 && djt<=floor(S(y1,4,1))+3){xs1='獺祭魚';}
 else if(djt>floor(S(y1,4,1))+3 && djt<=floor(S(y1,4,1))+8){xs1='候雁北';}
 else if(djt>floor(S(y1,4,1))+8 && djt<floor(S(y1,5,1))-1){xs1='草木萌動';}
 else if(djt>=floor(S(y1,5,1))-1 && djt<=floor(S(y1,5,1))+3){xs1='桃始華';}
 else if(djt>floor(S(y1,5,1))+3 && djt<=floor(S(y1,5,1))+8){xs1='倉庚鳴';}
 else if(djt>floor(S(y1,5,1))+8 && djt<floor(S(y1,6,1))-1){xs1='鷹化爲鳩';}
 else if(djt>=floor(S(y1,6,1))-1 && djt<=floor(S(y1,6,1))+3){xs1='玄鳥至';}
 else if(djt>floor(S(y1,6,1))+3 && djt<=floor(S(y1,6,1))+8){xs1='雷乃發聲';}
 else if(djt>floor(S(y1,6,1))+8 && djt<floor(S(y1,7,1))-1){xs1='始電';}  
 else if(djt>=floor(S(y1,7,1))-1 && djt<=floor(S(y1,7,1))+3){xs1='桐始華';}
 else if(djt>floor(S(y1,7,1))+3 && djt<=floor(S(y1,7,1))+8){xs1='田鼠化爲鴽';}
 else if(djt>floor(S(y1,7,1))+8 && djt<floor(S(y1,8,1))-1){xs1='虹始見';}
 else if(djt>=floor(S(y1,8,1))-1 && djt<=floor(S(y1,8,1))+3){xs1='萍始生';}
 else if(djt>floor(S(y1,8,1))+3 && djt<=floor(S(y1,8,1))+8){xs1='鳴鳩拂其羽';}
 else if(djt>floor(S(y1,8,1))+8 && djt<floor(S(y1,9,1))-1){xs1='戴勝降於桑';}  
 else if(djt>=floor(S(y1,9,1))-1 && djt<=floor(S(y1,9,1))+3){xs1='螻蟈鳴';}
 else if(djt>floor(S(y1,9,1))+3 && djt<=floor(S(y1,9,1))+8){xs1='蚯蚓出';}
 else if(djt>floor(S(y1,9,1))+8 && djt<floor(S(y1,10,1))-1){xs1='王瓜生';}
 else if(djt>=floor(S(y1,10,1))-1 && djt<=floor(S(y1,10,1))+3){xs1='苦菜秀';}
 else if(djt>floor(S(y1,10,1))+3 && djt<=floor(S(y1,10,1))+8){xs1='靡草死';}
 else if(djt>floor(S(y1,10,1))+8 && djt<floor(S(y1,11,1))-1){xs1='麥秋至';}   
 else if(djt>=floor(S(y1,11,1))-1 && djt<=floor(S(y1,11,1))+3){xs1='螳螂生';}
 else if(djt>floor(S(y1,11,1))+3 && djt<=floor(S(y1,11,1))+8){xs1='鵙始鳴';}
 else if(djt>floor(S(y1,11,1))+8 && djt<floor(S(y1,12,1))-1){xs1='反舌無聲';}
 else if(djt>=floor(S(y1,12,1))-1 && djt<=floor(S(y1,12,1))+3){xs1='鹿角解';}
 else if(djt>floor(S(y1,12,1))+3 && djt<=floor(S(y1,12,1))+8){xs1='蜩始鳴';}
 else if(djt>floor(S(y1,12,1))+8 && djt<floor(S(y1,13,1))-1){xs1='半夏生';}   
 else if(djt>=floor(S(y1,13,1))-1 && djt<=floor(S(y1,13,1))+3){xs1='溫風至';}
 else if(djt>floor(S(y1,13,1))+3 && djt<=floor(S(y1,13,1))+8){xs1='蟀蟋居壁';}
 else if(djt>floor(S(y1,13,1))+8 && djt<floor(S(y1,14,1))-1){xs1='鷹如鷙';}
 else if(djt>=floor(S(y1,14,1))-1 && djt<=floor(S(y1,14,1))+3){xs1='腐草爲螢';}
 else if(djt>floor(S(y1,14,1))+3 && djt<=floor(S(y1,14,1))+8){xs1='土潤溽暑';}
 else if(djt>floor(S(y1,14,1))+8 && djt<floor(S(y1,15,1))-1){xs1='大雨時行';}   
 else if(djt>=floor(S(y1,15,1))-1 && djt<=floor(S(y1,15,1))+3){xs1='涼風至';}
 else if(djt>floor(S(y1,15,1))+3 && djt<=floor(S(y1,15,1))+8){xs1='白露降';}
 else if(djt>floor(S(y1,15,1))+8 && djt<floor(S(y1,16,1))-1){xs1='寒蟬鳴';}
 else if(djt>=floor(S(y1,16,1))-1 && djt<=floor(S(y1,16,1))+3){xs1='鷹乃祭鳥';}
 else if(djt>floor(S(y1,16,1))+3 && djt<=floor(S(y1,16,1))+8){xs1='天地始肅';}
 else if(djt>floor(S(y1,16,1))+8 && djt<floor(S(y1,17,1))-1){xs1='禾乃登';}   
 else if(djt>=floor(S(y1,17,1))-1 && djt<=floor(S(y1,17,1))+3){xs1='鴻雁來';}
 else if(djt>floor(S(y1,17,1))+3 && djt<=floor(S(y1,17,1))+8){xs1='玄鳥歸';}
 else if(djt>floor(S(y1,17,1))+8 && djt<floor(S(y1,18,1))-1){xs1='群鳥養羞';}
 else if(djt>=floor(S(y1,18,1))-1 && djt<=floor(S(y1,18,1))+3){xs1='雷乃收聲';}
 else if(djt>floor(S(y1,18,1))+3 && djt<=floor(S(y1,18,1))+8){xs1='蟄蟲坯戶';}
 else if(djt>floor(S(y1,18,1))+8 && djt<floor(S(y1,19,1))-1){xs1='水始涸';}   
 else if(djt>=floor(S(y1,19,1))-1 && djt<=floor(S(y1,19,1))+3){xs1='鴻雁來賓';}
 else if(djt>floor(S(y1,19,1))+3 && djt<=floor(S(y1,19,1))+8){xs1='雀入大水爲蛤';}
 else if(djt>floor(S(y1,19,1))+8 && djt<floor(S(y1,20,1))-1){xs1='菊有黃花';}
 else if(djt>=floor(S(y1,20,1))-1 && djt<=floor(S(y1,20,1))+3){xs1='豺乃祭獸';}
 else if(djt>floor(S(y1,20,1))+3 && djt<=floor(S(y1,20,1))+8){xs1='草木黃落';}
 else if(djt>floor(S(y1,20,1))+8 && djt<floor(S(y1,21,1))-1){xs1='蟄蟲鹹俯';}   
 else if(djt>=floor(S(y1,21,1))-1 && djt<=floor(S(y1,21,1))+3){xs1='水始冰';}
 else if(djt>floor(S(y1,21,1))+3 && djt<=floor(S(y1,21,1))+8){xs1='地始凍';}
 else if(djt>floor(S(y1,21,1))+8 && djt<floor(S(y1,22,1))-1){xs1='雉入大水爲蜃';}
 else if(djt>=floor(S(y1,22,1))-1 && djt<=floor(S(y1,22,1))+3){xs1='虹藏不見';}
 else if(djt>floor(S(y1,22,1))+3 && djt<=floor(S(y1,22,1))+8){xs1='天氣騰地氣降';}
 else if(djt>floor(S(y1,22,1))+8 && djt<floor(S(y1,23,1))-1){xs1='閉塞成冬';}   
 else if(djt>=floor(S(y1,23,1))-1 && djt<=floor(S(y1,23,1))+3){xs1='鹖鴠不鳴';}
 else if(djt>floor(S(y1,23,1))+3 && djt<=floor(S(y1,23,1))+8){xs1='虎始交';}
 else if(djt>floor(S(y1,23,1))+8 && djt<floor(S(y1,24,1))-1){xs1='荔挺出';}
 else if(djt>=floor(S(y1,24,1))-1 && djt<=floor(S(y1,24,1))+3){xs1='蚯蚓結';}
 else if(djt>floor(S(y1,24,1))+3 && djt<=floor(S(y1,24,1))+8){xs1='麋鹿解';}
 else if(djt>floor(S(y1,24,1))+8  && djt<floor(S(y1,25,1))-1){xs1='水泉動';} 
 else if(djt>=floor(S(y1,25,1))-1 && djt<=floor(S(y1,25,1))+3) {xs1='雁北鄉';}
 else if(djt>floor(S(y1,25,1))+3) {xs1='鵲始巢';}
return xs1;
}

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  5楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:40:00

//---------公暦--------//
function  mondas(y,m){
  var mL=D0(y,m+1,1)-D0(y,m,1);
  if(mL==31)  mDx1='大'; if(mL==30)  mDx1='小'; if(mL==29)  mDx1='閏';
  if(mL==28)  mDx1='平'; if(mL==21)  mDx1='大';
  return mDx1;
  }

//星期
function Day(y,m,d){
  return erD(y,m,d)%7;
}
//星座
function sZod(m,d){
  var zodd=new Array(1222,122,222,321,421,522,622,722,822,922,1022,1122,1222);
  if((100*m+d)>=zodd[0]||(100*m+d)<zodd[1])
    var i=0;
  else
    for(var i=1;i<12;i++){
    if((100*m+d)>=zodd[i]&&(100*m+d)<zodd[i+1])
      break;
    }
  return i;
}

 

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  6楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:44:00

//-----農暦--//
///---農暦日數及日月食---//
  var soujz='00'   

function souj(k){ ///620年12月到1900年1月朔日修正
  var v=soujz.charAt(k);
   
/////農暦的校正(1901-2050)
    if(k==16118){//1924.3.5-4.3 少一天///
    var v= 2;
   }//2018.11.7-12.6 -- 2057.9.28-10.27 - 2097.8.7-9.5  多一天
  if(k==17289||k==17770||k==18263){
   var v= 1; 
  }
  if(v=='1')
    v=1;
  if(v=='2')
    v=-1;
  if(v=='')
    v=0;
  return parseInt(v);
 }
//月相,日月食
function shwStr(y,m,d,s1){//月相日月食信息的函數,如16.57923415,個位及十位朔望表示日數,小數部分是朔弦望時刻(該天不朔或不望、不弦小數部分為零)
  var t=(y-1899.5)/100;
  var ms=floor((y-1900)*12.3685);
  var rpi=180/PI();
  var zone=8;  //時區
  var f0=ang(ms,t,0,0.75933,2.172e-4,1.55e-7)+0.53058868*ms-8.37e-4*t+zone/24+0.5;
  var fc=0.1734-3.93e-4*t;
  var j0=693595+29*ms;
  var aa0=ang(ms,t,0.08084821133,359.2242/rpi,0.0000333/rpi,0.00000347/rpi);
  var ab0=ang(ms,t,7.171366127999999e-2,306.0253/rpi,-0.0107306/rpi,-0.00001236/rpi);
  var ac0=ang(ms,t,0.08519585128,21.2964/rpi,0.0016528/rpi,0.00000239/rpi);
  var leap=0;  //閏月數,0則不閏
  var ecli='';  //日月食
  var lunD=-1;  //農暦日數
  var shuoD=0;  //本陰暦月的陰暦朔日數
  var shuoT=0;  //本陰暦月的朔時刻
  var shanxD=0;  //本陰暦月的上弦時刻
  var shanxT=0;  //本陰暦月的陰暦上弦日數
  var wangD=0;  //本陰暦月的望時刻
  var wangT=0;  //本陰暦月的陰暦望日數
  var xiaxD=0;  //本陰暦月的下弦時刻
  var xiaxT=0;  //本陰暦月的陰暦下弦日數
  /////
  for(var k=-5;k<=15;k+=0.25){  //k=整數為朔,k=半整數為望
    var aa=aa0+0.507984293*k;
    var ab=ab0+6.73377553*k;
    var ac=ac0+6.818486628*k;
    var f1=f0+1.53058868*k+fc*sin(aa)-0.4068*sin(ab)+0.0021*sin(2*aa)+0.0161*sin(2*ab)+0.0104*sin(2*ac)-0.0074*sin(aa-ab)-0.0051*sin(aa+ab);
    var j=j0+28*k+f1;  //朔或望的等效標準天數及時刻
    var kk=0;if(y>=1900)kk=souj(ms+floor(k)+15819);
    var lunD0=erD(y,m,d)-(floor(j)+kk);//當前日距朔日的差值
    if(k==floor(k)&&lunD0>=0&&lunD0<=29){
      var k1=k;  //記錄當前時間對應的k值
      shuoT=tail(j);
      lunD=lunD0+1;
   ///對現行農暦月相的校正(1901-2050)
      if(kk<0) shuoT=0.99932;
      if(kk>=1) shuoT=0.0006;
    }
    if(k==(k1+0.25)){
      shanxT=tail(j); 
      shanxD=floor(j)-(erD(y,m,d)-lunD+1)+1;
    }
    if(k==(k1+0.5)){
      wangT=tail(j); 
      wangD=floor(j)-(erD(y,m,d)-lunD+1)+1;
    }
    if(k==(k1+0.75)){
      xiaxT=tail(j); 
      xiaxD=floor(j)-(erD(y,m,d)-lunD+1)+1;
    }
     //判斷日月食
    if((lunD==1&&k==k1)||(lunD==wangD&&k==(k1+0.5))){
      if(abs(sin(ac))<=0.36){
        var s=5.19595-0.0048*cos(aa)+0.002*cos(2*aa)-0.3283*cos(ab)-0.006*cos(aa+ab)+0.0041*cos(aa-ab);
        var r=0.207*sin(aa)+0.0024*sin(2*aa)-0.039*sin(ab)+0.0115*sin(2*ab)-0.0073*sin(aa+ab)-0.0067*sin(aa-ab)+0.0117*sin(2*ac);
        var p=abs(s*sin(ac)+r*cos(ac));
        var q=0.0059+0.0046*cos(aa)-0.0182*cos(ab)+0.0004*cos(2*ab)-0.0005*cos(aa+ab);
        if(p-q<=1.5572){
          ecli='(日食)';  //日食
          if(k!=floor(k)){
            if(p+q>=1.0129)
              ecli='(月偏食)';  //月偏食
            else
              ecli='(月全食)';  //月全食
          } } } } }
   //k循環結束
 if(y==1924&&m==3&&d==5)ecli='(日食)';////日食修正
  var str='';
  var v1=lunD;
  if(s1==0){
  if(v1==1)////日曆部份月相
    str='東8區'+dToStr(shuoT)+'朔<font color="#666666">●</font>'+ecli;
  else
    if(v1==shanxD)//(v1==15||v1==16)&&v2)
      str='東8區'+dToStr(shanxT)+'上弦<img border="0" src="7000wnldat/shanx.jpg" width="12" height="12">';
    else
    if(v1==wangD)//(v1==15||v1==16)&&v2)
      str='東8區'+dToStr(wangT)+'望<font color="#FF0000">○</font>'+ecli;
    else
    if(v1==xiaxD)//(v1==15||v1==16)&&v2)
      str='東8區'+dToStr(xiaxT)+'下弦<img border="0" src="7000wnldat/xiax.jpg" width="12" height="12">';
    else;
    }else{ 
  if(v1==1||v1==101||v1==201)///月曆部份月相
    str='<font color="#666666">●</font>';
  else
    if(v1==shanxD)//(v1==15||v1==16)&&v2)
      str='<img border="0" src="7000wnldat/shanx.jpg" width="12" height="12">';
    else
    if(v1==wangD)//(v1==15||v1==16)&&v2)
      str='<font color="#FF0000">○</font>';
    else
    if(v1==xiaxD)//(v1==15||v1==16)&&v2)
      str='<img border="0" src="7000wnldat/xiax.jpg" width="12" height="12">';
    else;
  }
  return str;
}


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  7楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:44:00

///日數及月大小信息的函數,如3001.57923415,百位千位30表示月大小(29為月小),個位及十位表示日數,小數部分是朔望時刻(該天不朔或不望小數部分為零)
function lunDate(y,m,d){ //求日數
  var t=(y-1899.5)/100;
  var ms=floor((y-1900)*12.3685);
  var rpi=180/PI();
  var zone=8;  //時區
  var f0=ang(ms,t,0,0.75933,2.172e-4,1.55e-7)+0.53058868*ms-8.37e-4*t+zone/24+0.5;
  var fc=0.1734-3.93e-4*t;
  var j0=693595+29*ms;
  var aa0=ang(ms,t,0.08084821133,359.2242/rpi,0.0000333/rpi,0.00000347/rpi);
  var ab0=ang(ms,t,7.171366127999999e-2,306.0253/rpi,-0.0107306/rpi,-0.00001236/rpi);
  var ac0=ang(ms,t,0.08519585128,21.2964/rpi,0.0016528/rpi,0.00000239/rpi);
  var lunD=-1;  //農暦日數
  var jerD=erD(y,m,d);
  var jeJD=round(JD(y,m,d,20,0,0,8)*1000)/1000;
  /////
   if(jeJD>=1410981&&jeJD<1947169){      /////-850(-850,1,21)年到619平朔
  if(jeJD>=1410981&&jeJD<1565456){
   var jsf=0.00269249*(y-(-721))       
   var zk1=floor((jeJD-1457727.915958)/29.5306);       /////-722-1-16到428;
   var sou0=floor(1457727.915958-jsf+29.530805106*(zk1-1)+0.5);
   var sou1=floor(1457727.915958-jsf+29.530805106*zk1+0.5);
   var sou2=floor(1457727.915958-jsf+29.530805106*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1565456&&jeJD<1683518){
   var zk1=floor((jeJD-1565455.530851)/29.5306);  /////前428年-12-26;
   var sou0=floor(1565455.530851+29.530805*(zk1-1)+0.5);
   var sou1=floor(1565455.530851+29.530805*zk1+0.5);
   var sou2=floor(1565455.530851+29.530805*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;if(jeJD>=1683490)mlunD=29;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1683518&&jeJD<1752148){
   var zk1=floor((jeJD-1683489.570610)/29.5306); /////前104年-02-22起h=0.00324
   var sou0=floor(1683489.570910+29.53086158*(zk1-1)+0.5);
   var sou1=floor(1683489.570910+29.53086158*zk1+0.5);
   var sou2=floor(1683489.570910+29.53086158*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;if(jeJD>=1752119)mlunD=29;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1752148&&jeJD<1807784){
   var zk1=floor((jeJD-1752148.041079)/29.5305); /////85年-02-13起h=0.00049
   var sou0=floor(1752148.041079+29.53085097*(zk1-1)+0.5);
   var sou1=floor(1752148.041079+29.53085097*zk1+0.5);
   var sou2=floor(1752148.041079+29.53085097*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1807784&&jeJD<1883619){/////237年-06-11起用
   var zk1=floor((jeJD-1807665.420323)/29.5303);  /////237年-02-12起h=0.00033
   var sou0=floor(1807665.420323+29.53059851*(zk1-1)+0.5);
   var sou1=floor(1807665.420323+29.53059851*zk1+0.5);
   var sou2=floor(1807665.420323+29.53059851*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1883619&&jeJD<1907361){
   var zk1=floor((jeJD-1883618.114100)/29.5303);    /////445年-01-24起h=0.00030
   var sou0=floor(1883618.114100+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1883618.114100+29.53060000*zk1+0.5);
   var sou2=floor(1883618.114100+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1907361&&jeJD<1936597){
   var zk1=floor((jeJD-1907360.704700)/29.5303); /////510年-01-26起h=0.00030
   var sou0=floor(1907360.704700+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1907360.704700+29.53060000*zk1+0.5);
   var sou2=floor(1907360.704700+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;



支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  8楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:47:00

  }else{
  if(jeJD>=1565456&&jeJD<1683518){
   var zk1=floor((jeJD-1565455.530851)/29.5306);  /////前428年-12-26;
   var sou0=floor(1565455.530851+29.530805*(zk1-1)+0.5);
   var sou1=floor(1565455.530851+29.530805*zk1+0.5);
   var sou2=floor(1565455.530851+29.530805*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;if(jeJD>=1683490)mlunD=29;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1683518&&jeJD<1752148){
   var zk1=floor((jeJD-1683489.570610)/29.5306); /////前104年-02-22起h=0.00324
   var sou0=floor(1683489.570910+29.53086158*(zk1-1)+0.5);
   var sou1=floor(1683489.570910+29.53086158*zk1+0.5);
   var sou2=floor(1683489.570910+29.53086158*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;if(jeJD>=1752119)mlunD=29;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1752148&&jeJD<1807784){
   var zk1=floor((jeJD-1752148.041079)/29.5305); /////85年-02-13起h=0.00049
   var sou0=floor(1752148.041079+29.53085097*(zk1-1)+0.5);
   var sou1=floor(1752148.041079+29.53085097*zk1+0.5);
   var sou2=floor(1752148.041079+29.53085097*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1807784&&jeJD<1883619){/////237年-06-11起用
   var zk1=floor((jeJD-1807665.420323)/29.5303);  /////237年-02-12起h=0.00033
   var sou0=floor(1807665.420323+29.53059851*(zk1-1)+0.5);
   var sou1=floor(1807665.420323+29.53059851*zk1+0.5);
   var sou2=floor(1807665.420323+29.53059851*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1883619&&jeJD<1907361){
   var zk1=floor((jeJD-1883618.114100)/29.5303);    /////445年-01-24起h=0.00030
   var sou0=floor(1883618.114100+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1883618.114100+29.53060000*zk1+0.5);
   var sou2=floor(1883618.114100+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1907361&&jeJD<1936597){
   var zk1=floor((jeJD-1907360.704700)/29.5303); /////510年-01-26起h=0.00030
   var sou0=floor(1907360.704700+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1907360.704700+29.53060000*zk1+0.5);
   var sou2=floor(1907360.704700+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1936597&&jeJD<1939136){
   var zk1=floor((jeJD-1936596.224900)/29.5303);  /////590年-02-10起h=0.01010
   var sou0=floor(1936596.224900+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1936596.224900+29.53060000*zk1+0.5);
   var sou2=floor(1936596.224900+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  if(jeJD>=1939136&&jeJD<1947169){
   var zk1=floor((jeJD-1939135.675300)/29.5303);   /////597年-01-24起h=0.00890
   var sou0=floor(1939135.675300+29.53060000*(zk1-1)+0.5);
   var sou1=floor(1939135.675300+29.53060000*zk1+0.5);
   var sou2=floor(1939135.675300+29.53060000*(zk1+1)+0.5);
   var mlunD=sou2 - sou1;var mlunD0=sou1 - sou0;
   var lunD1=jeJD-sou1+1;
  }else{
  lunD1='';};};};};};};};};};
 var syd025=mlunD;
   if(lunD1>mlunD){
   lunD1 = 1;syd025=30;
  }
  if(mlunD0==29&&lunD1<1){
  lunD1 = 29;syd025=29;
   }
   if(mlunD0==30&&lunD1<1){
    lunD1 = lunD1+=30;syd025=30;
    }
  }else{
  lunD1='';
  for(var k=-5;k<=15;k+=0.5){  //k=整數為朔,k=半整數為望
    var aa=aa0+0.507984293*k; var aa2=aa0+0.507984293*(k+1);
    var ab=ab0+6.73377553*k;  var ab2=ab0+6.73377553*(k+1);
    var ac=ac0+6.818486628*k; var ac2=ac0+6.818486628*(k+1);
    var f1=f0+1.53058868*k+fc*sin(aa)-0.4068*sin(ab)+0.0021*sin(2*aa)+0.0161*sin(2*ab)+0.0104*sin(2*ac)-0.0074*sin(aa-ab)-0.0051*sin(aa+ab);
    var f12=f0+1.53058868*(k+1)+fc*sin(aa2)-0.4068*sin(ab2)+0.0021*sin(2*aa2)+0.0161*sin(2*ab2)+0.0104*sin(2*ac2)-0.0074*sin(aa2-ab2)-0.0051*sin(aa2+ab2);
    var j=j0+28*k+f1;  //朔或望的等效標準天數及時刻
    var j2=j0+28*(k+1)+f12;  //下月朔的等效標準天數及時刻
    var kk=souj(ms+floor(k)+15819); //
    var lunD0=jerD-(floor(j)+kk);  //當前日距朔日的差值
    var kk2=souj(ms+floor(k)+15819+1); //
    var lunD03=floor(j)+kk;  //當前月朔日的值
    var lunD02=floor(j2)+kk2;  //下月朔日的值
    if(k==floor(k)&&lunD0>=0&&lunD0<=29){
     lunD=lunD0+1;
    var syd023=lunD02-lunD03;  ///下月朔日的值-當前月朔日的值;算大小月
    }
   } }
 
   var v=lunD;  //返回值
  if(jeJD>=1410981&&jeJD<1947169){
  v=lunD1;
  }
  var syd026=syd023;
  if(jeJD>=1410981&&jeJD<1947169){
  syd026=syd025;
  }
 return(v+syd026*100)
 }


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  9楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:50:00

闰月数因字节多就用付件传上,请看付件

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:闰月.txt


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
chwc
  10楼 个性首页 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By:2009/6/19 10:50:00

function lunMon(y,m,d,a){ ///求月數
  if(y>=2302){
  var sDt53=S(y-1,24,1);
  var sD53=antiD0(y-1,floor(sDt53));
  var sM53=floor(sD53/100);
  sDate53=sD53%100;
  var lunDt2=lunDate(y-1,sM53,sDate53);
  var lunD2=floor(lunDt2-floor(lunDt2/100)*100); 
  var dzr=sDate53-lunD2;
  if(dzr<1)sM53=sM53;
  var dzra=(sDate53-lunD2+31)%30;
  if(dzra==0)dzra=31;
  if(sDate53<lunD2)sM53=sM53-1;
  var dzrs=erD(y-1,sM53,dzra);}else{var dzrs=0;
   }/////
  var lunDt=lunDate(y,m,d);
  var lunD=floor(lunDt-floor(lunDt/100)*100);  //農暦日數
  var leapNm2=leapM6(y);
  var leapN=0;  //從當年到-2699年的總閏月數
  var leapN2=0;if(leapNm2>0)leapN2=1;
  if(y<2302){
  leapN=leapNum(y);
  var MonN=round((erD(y,m,d)-erD(-2700,1,26)-lunD)/29.530588)-leapN//從當年到-849年的有效總月數(扣除閏月)
  if(y==762 && m<4 ||y==762 && m==4 && d<=28) MonN=MonN+2;//歷史上的修改月建開紿
  if(y==761 && m==12 && d>1) MonN=MonN+2;
  if(y<=700) MonN=MonN+2;
  if(y==700 && m==12 && d>=15) MonN=MonN-2;
  if(y<689||y==689&&m<12||y==689&& m==12&& d<18) MonN=MonN-2;
  if(y<240||y==240 && m==1 && d<12) MonN++;
  if(y<=237) MonN--;
  if((y==237 && m==4 && d>=12 && MonN>=3)||(y==237 && m>4 && MonN>=3)) MonN++;
  if(y<24) MonN++;
  if((y==23 && m==11 && d>=2 && MonN>=11)||(y==23 && m>11 && MonN>=11)) MonN--;
  if(y<9) MonN--;
  if(y==9 && m==1 && d<=14 ) MonN--;
  ///if(y<=-255) MonN++;  
  ///if(y<=-256) MonN+=2;
  if(y<=-104) MonN+=3;
  if(y==-103 && m<3||y==-103 && m==3 && d<23) MonN+=3;
  if(y==-721&&m==1&&d<16||y<=-722) MonN++;
  if(y<=-1047||y==-1046&&m<=11||y==-1046&&m==12&&d<30) MonN--;
  if(y<=-1600||y==-1599&&m==1&&d==1) MonN--;  //歷史上的修改月建完
  var leapNk=0;if(leapMon(y)>0)leapNk=1;
  var lunM8aa=ifGr5(y,m,d);
  var luny=floor((MonN+9+leapNk)/12)-2701;if(lunM8aa<6&&m>2)luny=floor((MonN+9)/12)-2701;
  var lunM=round(rem(MonN-3,12)+1);
  var lunM5a=round(rem(MonN-3,12)+1);

  if(lunM8aa<6&&leapMon(luny)>0&&lunM<leapMon(luny)&&m>=9&&lunM<5)
    lunM=lunM;
      else{
  if(lunM8aa<6&&leapMon(luny)>0&&lunM>leapMon(luny)&&m>=9&&lunM<5)
    lunM--;
      else{
    if(leapMon(luny)>0&&lunM==leapMon(luny)&&(m-lunM)<5&&(m-lunM)>-2||y<-1188&&leapMon(luny)==12&&lunM==12&&m<5)
      lunM*=-1;
      else{
      if(m<5&&lunM>9&&leapMon(y)||lunM<leapMon(luny))
        lunM++;  //如果y年是閏月但當月未過閏月則前面多扣除了本年的閏月,這裏應當補償 
        lunM=round(rem(lunM-1,12)+1);
       }}}
     }else{  /////2302年后的
  var MonN=round((erD(y,m,d)-(dzrs)-lunD)/29.530588)+37-leapN2;
  var lunM=round(rem(MonN-3,12)+1);
  var lunMk=round(rem(lunM-1+leapN2,12)+1);
  if(leapM6(y)==12)lunMk=round(rem(lunM-1,12)+1);
  var luny=y;if(m<=3&&lunMk>=10)luny=y-1;
    if(lunM<leapM6(y)&&leapM6(y)>0&&leapM6(y)<12||m<=3&&lunM>=10&&m<lunM&&leapM6(y)&&leapM6(y)>0&&leapM6(y)<12)
    lunM++; 
 else{
if(leapM6(y)==12&&m<=2&&lunM<leapM6(y)&&lunM>2)
lunM++;
 else{
if(leapM6(y-1)==11)
lunM--;
 }}
 lunM=round(rem(lunM-1,12)+1);
   }
  if(y<-1188&&lunM==-12)
  lunM=13;
  if(a==1){
  return luny;
  }else{

  return lunM; 
  }   }
  ////////
  function zim(y,m,d){
  var lunM8aa=ifGr5(y,m,d);
  var mk=0;var mk3=0;
  if(lunM8aa==1||lunM8aa==0)mk=2;
  if(lunM8aa==3||lunM8aa==4||lunM8aa==5)mk=1;
  if(lunM8aa==2)mk=3;
  var ii=mk;
  return ii;
}
  ////農曆月大小。
  function lundsMon(y,m,d){
  var a96t=lunDate(y,m,d);
  var a96=floor(a96t/100);
  var dszm='';  /////農曆月大或小。
  if(a96==30){dszm='大'
   }else{dszm='小'
  } 
  return dszm;
  }


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 19 1 2 下一页

返回版面帖子列表

公开修正后的《电脑医生万年历》历算核心代码








签名