中华农历论坛知识讨论区历法知识 → 求二十八宿的算法,年月局日,要简单实用的办法


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

主题:求二十八宿的算法,年月局日,要简单实用的办法

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


加好友 发短信
等级:新手上路 帖子:1 积分:222 威望:0 精华:0 注册:2010/10/18 22:12:00
求二十八宿的算法,年月局日,要简单实用的办法  发帖心情 Post By:2010/10/18 23:24:00

求二十八宿的算法,年月局日,要简单实用的办法

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


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2010/10/19 8:28:00

chwc

 

hero_hacker

等朋友,对于楼主提的“二十八宿”,都有比较高明的算法。

请楼主与他们联系。

 

他们的软件已经在论坛中公开。楼主也可以下载参考。


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


加好友 发短信
等级:黑侠 帖子:603 积分:5315 威望:0 精华:4 注册:2008/4/21 19:06:00
  发帖心情 Post By: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);
}
//28宿各种算法
function yesbgj(y2a){//28宿管局
var gj28=28-rem((floor(((y2+36)%56)/2)),28);if(gj28==28)gj28=0;
return gj28;
}
function yesb(y2){//年28宿
  return round(rem(y2-14,28));
}
function mesb(y,gzM){//月28宿
var mm=(y+4713)*12+gzM+7;
var v=(mm%28);if(gzM<0) v='';
   return v;
}
function riesb(jJD){//日28宿
var v=(jJD+11)%28;//jJD就是等效儒略日——前4713年1月1號从0:00到23:59為0(jJD=0)
return v;
}
调用:如年28宿“Sukuyou4[yesb(y2)]”


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


加好友 发短信
等级:新手上路 帖子:1 积分:201 威望:0 精华:0 注册:2010/11/19 21:46:00
  发帖心情 Post By:2010/11/19 22:32:00

var gj28=28-rem((floor(((y2+36)%56)/2)),28);if(gj28==28)gj28=0;
这里的rem函数在哪里,请指教

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


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

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

我忘了发上廣義求余函数,对不起!其它请看:http://bbs.nongli.net/dispbbs_2_36326.html


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

求二十八宿的算法,年月局日,要简单实用的办法








签名