以文本方式查看主题

-  中华农历论坛  (http://bbs.nongli.net/index.asp)
--  历法知识  (http://bbs.nongli.net/list.asp?boardid=2)
----  [原创]年月局日二十八宿的算法JS代码。  (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=36326)

--  作者:chwc
--  发布时间:2010/10/19 9:05:00
--  [原创]年月局日二十八宿的算法JS代码。

//28宿方
var Sukuyou = new Array(\'東方\',\'東方\',\'東方\',\'東方\',\'東方\',\'東方\',\'東方\',\'北方\',\'北方\',\'北方\',\'北方\',\'北方\',\'北方\',\'北方\',\'西方\',\'西方\',\'西方\',\'西方\',\'西方\',\'西方\',\'西方\',\'南方\',\'南方\',\'南方\',\'南方\',\'南方\',\'南方\',\'南方\');
//28宿名1
var Sukuyou2 = new Array(\'角木蛟--吉\',\'亢金龍--凶\',\'氐土貉--凶\',\'房日兔--吉\',\'心月狐--凶\',\'尾火虎--吉\',\'箕水豹--吉\',\'鬥木獬--吉\',\'牛金牛--凶\',\'女土蝠--凶\',\'虛日鼠--凶\',\'危月燕--凶\',\'室火豬--吉\',\'壁水貐--吉\',\'奎木狼--凶\',\'婁金狗--吉\',\'胃土雉--吉\',\'昴日雞--凶\',\'畢月烏--吉\',\'觜火猴--凶\',\'參水猿--凶\',\'井木犴--吉\',\'鬼金羊--凶\',\'柳土獐--凶\',\'星日馬--凶\',\'張月鹿--吉\',\'翼火蛇--凶\',\'轸水蚓--吉\');
//28宿名2
var Sukuyou4 = new Array(\'角\',\'亢\',\'氐\',\'房\',\'心\',\'尾\',\'箕\',\'鬥\',\'牛\',\'女\',\'虛\',\'危\',\'室\',\'壁\',\'奎\',\'婁\',\'胃\',\'昴\',\'畢\',\'觜\',\'參\',\'井\',\'鬼\',\'柳\',\'星\',\'張\',\'翼\',\'轸\');

//算28宿必须用到的数学函数
function floor(x){///截去小數部份,取整;如:11.25只取出11
  return Math.floor(x);
}

function round(x){///小數部份舍入n位數;如:11.205
  return Math.round(x);
}

function rem(x,w){//广义求余
  return tail(x/w)*w;
}

//28宿各种算法

function yesb(y){//年宿
  return round(rem(y-14,28));
}
function ysgj(y){//管局宿
var gj=28-rem((floor(((y+36)%56)/2)),28);if(gj==28)gj=0;
  return gj;
}
function mesb(y,gzM){//月宿
var mm=(y+4713)*12+gzM+7; //gzM=農暦月,正月為1
var v=round(rem(mm,28));if(gzM<0) v=\'\';
  return v;
}
function desb(jd){//日宿
  return round(rem((jd+11),28));//jJD就是等效儒略日——前4713年1月1號从0:00到23:59為0(jJD=0)

}

调用:如年28宿“Sukuyou4[yesb(y2)]”

算出来的结果请看《电脑医生万年历》和《福星万年历》。

[此贴子已经被作者于2010-10-21 10:00:07编辑过]

--  作者:春光
--  发布时间:2010/10/19 12:02:00
--  
谢谢楼主的奉献。
--  作者:chwc
--  发布时间:2010/10/21 10:03:00
--  

调用:y、y2、代表農暦年,gzM=農暦月,正月為1
jJD就是等效儒略日——前4713年1月1號从0:00到23:59為0(jJD=0)


--  作者:ddjhnshdx
--  发布时间:2010/11/2 23:46:00
--  

二十八宿,只需要查表便可得知,屈指轮掌推算也可得知,没有必要采用电脑的,


--  作者:浪-淘-沙
--  发布时间:2010/11/4 11:26:00
--  
以下是引用ddjhnshdx在2010-11-2 23:46:00的发言:

二十八宿,只需要查表便可得知,屈指轮掌推算也可得知,没有必要采用电脑的,

你的书出版了吗?

 

你是“高人”,但不能要求别人与你一样“高”。

别人编程来算二十八宿,也是一种爱好。

 

你有必要打击他的积极性吗?