有没有哪位富翁对纳音五行有研究?(200分)

  • 主题发起人 主题发起人 hying95
  • 开始时间 开始时间
H

hying95

Unregistered / Unconfirmed
GUEST, unregistred user!
在网上找了好久没找到,没办法.只能把它保存在INI中
2004年五行(纳音)数字属性(每年立春后转换)
金号:04-05-12-13-20-21-34-35-42-43
木号:02-03-16-17-24-25-32-33-46-47
水号:01-08-09-22-23-30-31-38-39
火号:10-11-18-19-26-27-40-41-48-49
土号:06-07-14-15-28-29-36-37-44-45

2005年五行(纳音)数字属性(每年立春后转换)
金号:05,06,13,14,21,22,35,36,43,44
木号:03,04,17,18,25,26,33,34,47,48
水号:01,02,09,10,23,24,31,32,39,40,
火号:11,12,19,20,27,28,41,42,49
土号:07,08,15,16,29,30,37,38,45,46,

2006年五行(纳音)数字属性(每年立春后转换)
金号:06,07,14,15,22,23,36,37,44,45,
木号:04,05,18,19,26,27,34,35,48,49,
水号:02,03,10,11,24,25,32,33,40,41,
火号:12,13,20,21,28,29,42,43
土号:01,08,09,16,17,30,31,38,39,46,47

2007年五行(纳音)数字属性(每年立春后转换)
金号:07,08,15,16,23,24,37,38,45,46
木号:05,06,19,20,27,28,35,36,49
水号:03,04,11,12,25,26,33,34,41,42
火号:13,14,21,22,29,30,43,44
土号:01,02,09,10,17,18,31,32,39,40,47,48

2008年五行(纳音)数字属性(每年立春后转换)
金号:08,09,16,17,24,25,38,39,46,47,
木号:06,07,20,21,28,29,36,37
水号:04,05,12,13,26,27,34,35,42,43,
火号:01,14,15,22,23,30,31,44,45,
土号:02,03,10,11,18,19,32,33,40,41,48,49

2009年五行(纳音)数字属性(每年立春后转换)
金号:09,10,17,18,25,26,39,40,47,48
木号:07,08,21,22,29,30,37,38
水号:05,06,13,14,27,28,35,36,43,44,
火号:01,02,15,16,23,24,31,32,45,46
土号:03,04,11,12,19,20,33,34,41,42,49

不知它是如何确定的?
想写一个函数
fnuction GetNY(aYear: word;aNumber:integer):string;
比如2007年15属于金号,2009年15又属于火号.
 
贴一段给你研究一下
Function GetNY(aNum: integer): String;//60甲子的纳音五行
const
//五行配数
cnWXPS: Array[1..5] of string=('火','土','木','金','水');
G :array[1..10] of string =('甲','乙','丙','丁','戊','己','庚','辛','壬','癸');
Z :array[1..12] of string =('子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥');
//天干配数
cnTGPS: Array[1..10] of integer=
(9,8,7,6,5,9,8,7,6,5);
//地支配数
cnDZPS: Array[1..12] of integer=
(9,8,7,6,5,4,9,8,7,6,5,4);
var
i: integer;
N1,N2: Integer;
M1,M2,M3,M4: Integer;
tmp: integer;
begin
if odd(aNum) then i:=1 else i:=-1;
N1:=aNum mod 10;
IF N1=0 then N1:=10;
N2:=aNum mod 12;
IF N2=0 then N2:=12;

M1:=cnTGPS[N1];
M2:=cnDZPS[N2];

M3:=N1+i;

IF M3>10 then M3:=M3 mod 10;
IF M3=0 then M3:=10;
M3:=cnTGPS[M3];

M4:=N2+I;
IF M4>12 then M4:=M4 mod 12;
IF M4=0 then M4:=12;
M4:=cnDZPS[M4];

Tmp:=(M1+M3+M2+M4) mod 5;
if tmp=0 then tmp:=5;

//Result:=G[N1]+Z[N2]+' '+cnWXPS[Tmp];
Result:=cnWXPS[Tmp];
end;

//五行字符列表
function GetWH(): TStrings;//没找到更好的办法
Const
wx: array[1..5] of string=('金','木','水','火','土');
//wx_n: array[1..5] of integer=(-6,0,18,12,6);//这个是07年的
wx_n: array[1..5] of integer=(-7,-1,9,11,5);//这个是08年的
var
i,J,M,L: integer;
s,s1: string;
begin
Result:=TStringList.Create;
for i := 1 to 5 do
Result.Add(wx+'=');

for i := 1 to 49 do
begin
for j :=1 to 5 do
begin
M:=wx_n[j];
L:=i+M;
if L<0 then continue;
s:=GetNY(L);
if s=wx[j] then
begin
s1:=inttostr(i);
if i<10 then
s1:='0'+s1;
Result.Strings[j-1]:=Result.Strings[j-1]+' '+s1;
end;
end;
end;
end;
 
多谢SP229根据你的方法已经可以了!!!
 
后退
顶部