中华农历论坛知识讨论区历法知识 → 回复帖子

  回复帖子
用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
高级设置: 签名: 回帖通知:
 

主题最新回顾(发布时间:2009/8/24 23:38:00)
--  作者:yelangpp
--  
嘿嘿,是有点晕。
还是谢谢提供,复制了,下来好好学习学习。

主题最新回顾(发布时间:2009/8/4 9:45:00)
--  作者:ldejin
--  
谢谢分享!

主题最新回顾(发布时间:2009/7/20 15:20:00)
--  作者:kklaw
--  
学习了,感谢分享

主题最新回顾(发布时间:2009/6/20 22:55:00)
--  作者:浪-淘-沙
--  

支持共享源码,楼主辛苦了。

谢谢。


主题最新回顾(发布时间:2009/6/19 16:19:00)
--  作者:ldlcau
--  

谢谢共享

图片点击可在新窗口打开查看


主题最新回顾(发布时间:2009/6/19 11:00:00)
--  作者:dadunang
--  
编程代码,以帖子发布让人看着头晕,为什么不打包下载呢?

主题最新回顾(发布时间:2009/6/19 10:53:00)
--  作者:chwc
--  

节日计算也用付件传上,要的话请看付件。

因个人所要的风格不同,应用方面就不发了。大家要怎么用就怎么用吧!

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


主题最新回顾(发布时间:2009/6/19 10:51:00)
--  作者:chwc
--  
//--------回暦--------//
function huili(y,m,d,h){
var n = (floor(round(JD(y,m,d,20,0,0,8)*1000)/1000)-1948440);
var k = floor( (n+0.1)/10631 );
var A = n -k*10631;
var y = floor( (A+0.5)/354.366 );
var B = A - floor( y*354.366+0.5 );
var m = floor( (B+0.11)/29.51 );
var d = B - floor(29.5001*m+0.5);
var hy0=y+1+k*30;
var hy=hy0;if(hy0<=0)hy='前'+(-hy0+1);
var hm=m+1;
var hd=d+1;
var huli='回暦'+hy+'年'+hm+'月'+hd+'日';
return huli;
}

主题最新回顾(发布时间:2009/6/19 10:50:00)
--  作者:chwc
--  

///---八字干支--/////
//年干支
function yGz(y,m,d,h){
  var br=(D0(y,m,d)+(h+1)/24);
  var rc=S(y,3,1);
  if(br<rc) //判斷是否過立春
    y-=1;
  return round(rem(y-3,60));
}
///月干支
function mGz(y,m,d,h){
 var djr=(D0(y,m,d)+(h+1)/24);
 if(djr>=S(y,-1,1)&&djr<S(y,1,1))
   var gzM=11;
 if(djr>=S(y,1,1)&&djr<S(y,3,1))
   var gzM=12;
 if(djr>=S(y,3,1)&&djr<S(y,5,1))
   var gzM=1;   //干支月
 if(djr>=S(y,5,1)&&djr<S(y,7,1))
   var gzM=2;
 if(djr>=S(y,7,1)&&djr<S(y,9,1))
   var gzM=3;
 if(djr>=S(y,9,1)&&djr<S(y,11,1))
   var gzM=4;
 if(djr>=S(y,11,1)&&djr<S(y,13,1))
   var gzM=5;
 if(djr>=S(y,13,1)&&djr<S(y,15,1))
   var gzM=6;
 if(djr>=S(y,15,1)&&djr<S(y,17,1))
   var gzM=7;
 if(djr>=S(y,17,1)&&djr<S(y,19,1))
   var gzM=8;
 if(djr>=S(y,19,1)&&djr<S(y,21,1))
   var gzM=9;
 if(djr>=S(y,21,1)&&djr<S(y,23,1))
   var gzM=10;
 if(djr>=S(y,23,1)&&djr<S(y,25,1))
   var gzM=11;
 if(m==12&&djr>=S(y,25,1))
  var gzM=12;
 if(djr<S(y,3,1)){
 return round(rem(12*gan((yGz(y,m,d))+9)+gzM-10,60));
 }else{
   return round(rem(12*gan(yGz(y,m,d))+gzM-10,60));
   }
}
 //日干支
 function dGz(y,m,d,h){
  var gzD=(h<23)?erD(y,m,d):erD(y,m,d)+1;
  return round(rem(gzD+15,60));
 }
  function dGza(y,m,d,h){
  var gzD=(h<23)?erD(y,m,d):erD(y,m,d)+1;
  return gzD;
}
//時干支
function hGz(y,m,d,h){
  var v=12*gan(dGz(y,m,d,h))+floor((h+1)/2)-11;
  if(h==23)
    v-=12;
  return round(rem(v,60));
}

///---八字干支--/////
//年干支
function yGz(y,m,d,h){
  var br=(D0(y,m,d)+(h+1)/24);
  var rc=S(y,3,1);
  if(br<rc) //判断是否过立春
    y-=1;
  return round(rem(y-3,60));
}
///月干支
function mGz(y,m,d,h){
 var djr=(D0(y,m,d)+(h+1)/24);
 if(djr>=S(y,-1,1)&&djr<S(y,1,1))
   var gzM=11;
 if(djr>=S(y,1,1)&&djr<S(y,3,1))
   var gzM=12;
 if(djr>=S(y,3,1)&&djr<S(y,5,1))
   var gzM=1;   //干支月
 if(djr>=S(y,5,1)&&djr<S(y,7,1))
   var gzM=2;
 if(djr>=S(y,7,1)&&djr<S(y,9,1))
   var gzM=3;
 if(djr>=S(y,9,1)&&djr<S(y,11,1))
   var gzM=4;
 if(djr>=S(y,11,1)&&djr<S(y,13,1))
   var gzM=5;
 if(djr>=S(y,13,1)&&djr<S(y,15,1))
   var gzM=6;
 if(djr>=S(y,15,1)&&djr<S(y,17,1))
   var gzM=7;
 if(djr>=S(y,17,1)&&djr<S(y,19,1))
   var gzM=8;
 if(djr>=S(y,19,1)&&djr<S(y,21,1))
   var gzM=9;
 if(djr>=S(y,21,1)&&djr<S(y,23,1))
   var gzM=10;
 if(djr>=S(y,23,1)&&djr<S(y,25,1))
   var gzM=11;
 if(m==12&&djr>=S(y,25,1))
  var gzM=12;
 if(djr<S(y,3,1)){
 return round(rem(12*gan((yGz(y,m,d))+9)+gzM-10,60));
 }else{
   return round(rem(12*gan(yGz(y,m,d))+gzM-10,60));
   }
}
 //日干支
 function dGz(y,m,d,h){
  var gzD=(h<23)?erD(y,m,d):erD(y,m,d)+1;
  return round(rem(gzD+15,60));
 }
  function dGza(y,m,d,h){
  var gzD=(h<23)?erD(y,m,d):erD(y,m,d)+1;
  return gzD;
}
//时干支
function hGz(y,m,d,h){
  var v=12*gan(dGz(y,m,d,h))+floor((h+1)/2)-11;
  if(h==23)
    v-=12;
  return round(rem(v,60));
}


主题最新回顾(发布时间:2009/6/19 10:50:00)
--  作者:chwc
--  

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;
  }