Skip to content

Commit

Permalink
* [CnCalendar] Add FuShen.
Browse files Browse the repository at this point in the history
  • Loading branch information
Liu Xiao committed Jan 30, 2022
1 parent 07c9ca3 commit 6cba86e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
4 changes: 3 additions & 1 deletion Doc/Develop/CnCalendar历法说明.txt
Original file line number Diff line number Diff line change
Expand Up @@ -241,12 +241,14 @@
3.3.9 ����λ
--------------

����������������ϲ�񡢲��񡢹���ȣ����й����ַ����������Ĭ�����󡣼���λ�����ÿ�յ����ֵ���Եģ�Ҳ����˵�����ij�յ����ֵ����Ψһȷ�����յ�ijλ�������ڵİ˸���λ֮һ��ע�ⲿ�ּ��񲢷ǰ˸���λ�����ڡ�
����������������ϲ�񡢲��񡢸��񡢹���ȣ����й����ַ����������Ĭ�����󡣼���λ�����ÿ�յ����ֵ���Եģ�Ҳ����˵�����ij�յ����ֵ����Ψһȷ�����յ�ijλ�������ڵİ˸���λ֮һ��ע�ⲿ�ּ��񲢷ǰ˸���λ�����ڡ�

ϲ��λ������ɵĶ�Ӧ��ϵ���׼��ڶ������Ҹ������������������ϡ����������ϡ�����ڶ��ϡ�
����λ������ɵĶ�Ӧ��ϵ�������ڶ��������������ϡ��켺���������������������ɹ������ϡ�
����Ҳ���ǹ���������ɵĶ�Ӧ��ϵ�����������ϡ���������������������������ڶ����������������������������ڶ��ϡ�
����λ������ɵĶ�Ӧ��ϵ�����ڶ������������������������������������켺�������ϡ��������ϡ����ڶ��ϡ�����������
����λ������ɵĶ�Ӧ��ϵ���׼����������Ҹ������ϡ������������������ڶ��ϡ�����ڶ�����
���⸣��λ����һ�׶�Ӧ��ϵ�������ڶ��ϡ������������������������������ϡ����������ϡ���������������������CnCalendar ��δ���á�

����Ŵ��ھ��о����ð���ָ����λ����Ӧ��ϵ����һ��������CnCalendar ����ؼ�������ֱ��ת�����˷�λ��

Expand Down
1 change: 1 addition & 0 deletions Examples/Calendar/Unit1.pas
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ procedure TForm1.btnCalcClick(Sender: TObject);
mmoResult.Lines.Add('财神' + GetJiShenFangWeiFromNumber(GetCaiShenFangWeiFromDay(AYear, AMonth, ADay)));
mmoResult.Lines.Add('喜神' + GetJiShenFangWeiFromNumber(GetXiShenFangWeiFromDay(AYear, AMonth, ADay)));
mmoResult.Lines.Add('贵神' + GetJiShenFangWeiFromNumber(GetGuiShenFangWeiFromDay(AYear, AMonth, ADay)));
mmoResult.Lines.Add('福神' + GetJiShenFangWeiFromNumber(GetFuShenFangWeiFromDay(AYear, AMonth, ADay)));

mmoResult.Lines.Add('本日节气:' + GetJieQiFromNumber(GetJieQiFromDay(AYear, AMonth, ADay)));
if GetJieQiFromDay(AYear, AMonth, ADay) >= 0 then
Expand Down
23 changes: 22 additions & 1 deletion Source/Common/CnCalendar.pas
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
* 兼容测试:PWin9X/2000/XP + Delphi 5/6
* 本 地 化:该单元中的字符串均符合本地化处理方式
* 修改记录:2022.01.29 V2.2
* 根据日干增加每日吉神方位的计算,包括财神、喜神、贵神等,其中贵神包括阳贵阴贵,默认阳贵。
* 根据日干增加每日吉神方位的计算,包括财神、喜神、福神、贵神等,其中贵神包括阳贵阴贵,默认阳贵。
* 2018.08.22 V2.1
* 罗建仁补充 2100 年到 2800 年的农历数据并协助修正三伏日计算的偏差
* 2018.07.18 V2.0
Expand Down Expand Up @@ -515,6 +515,9 @@ function GetCaiShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
function GetXiShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
{* 获得公历年月日的喜神方位,0-7}

function GetFuShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
{* 获得公历年月日的福神方位,0-7}

function GetGuiShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
{* 获得公历年月日的贵神方位,0-7,默认为阳贵}

Expand Down Expand Up @@ -2824,6 +2827,24 @@ function GetXiShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
end;
end;

// 获得公历年月日的福神方位,0-7
function GetFuShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
var
Gan, Zhi: Integer;
begin
ExtractGanZhi(GetGanZhiFromDay(AYear, AMonth, ADay), Gan, Zhi);
// 福神居然有两套口诀:一是此处用的甲己正北是福神,丙辛西北乾宫存。乙庚坤位戊癸艮,丁壬巽上妙追寻。
// 二是:甲乙东南是福神,丙丁正东是堪宜,戊北己南庚辛坤,壬在乾方癸在酉。筛查后弃用。

case Gan of
0,5: Result := 1; // 甲己在正北
1,6: Result := 7; // 乙庚在西南
2,7: Result := 5; // 丙辛在西北
3,8: Result := 4; // 丁壬在东南
4,9: Result := 3; // 戊癸在东北
end;
end;

// 获得公历年月日的贵神方位,0-7,默认为阳贵
function GetGuiShenFangWeiFromDay(AYear, AMonth, ADay: Integer): Integer;
begin
Expand Down

0 comments on commit 6cba86e

Please sign in to comment.