本文整理自网络,侵删。
unit Unit1;
{$mode objfpc}{$H+}
interface
uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm) Button1: TButton; ComboBox1: TComboBox; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private
public
end;
var Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
{公元后----------------------------------------------------------------------------------------年干支推算:天干序数按:1(甲),2(乙),3(丙),4(丁),5(戊),6(己),7(庚),8(辛),9(壬),10(癸)地支序数按:1(寅),2(卯),3(辰),4(巳),5(午),6(未),7(申),8(酉),9(戌),10(亥),11(子),12(丑)年干支推算:①年干公式:年干=年份个位数- 3(适用于任何西元年,个位数小于3,借10)②年支公式:年支=(年份+7)÷12余数(整除余0,即余12=丑)③年支简化:(西元年末二位数-1)-12*N=年支(适用于20世纪,即1900―1999年)(西元年末二位数+3)-12*N=年支(适用于21世纪,即2000―2099年)例:求2015年干支?解:2015年干=5-3=2,2=乙,故2015年天干为乙2015年支=15+3-12=18-12=6,6=未,故2015年地支为未综上,2015年干支为乙未例:求公元189年干支?解:189年干=9-3=6=己,189年支=(189+7)/12余4=巳,189年干支为己巳月干支推算:①月干公式:月干=年干x2+月支(和超过10,直接取个位数)②简化公式:(和取个位)亥月干=年干x2子月干=年干x2+1=寅月干丑月干=年干x2+2=卯月干例:已知2015年为乙未年,求2015年申月天干?解:2015年乙未年,天干为乙,乙=2,申=7申月干=乙x2+申=2*2+7=11,个位=1,1=甲,故申月天干为甲例:求2012年壬辰年,亥月天干?解:亥月干=壬x2+亥=9*2+10=18+10=28,个位=8,8=辛,故2012年壬辰年亥月天干为辛(注:亥月天干公式,可直接简化为:亥月干=年干x2)例:求戊子年,子月天干?解:子月干=戊x2+子=5*2+11=21,个位=1=甲,故戊子年子月天干为甲
}procedure TForm1.FormCreate(Sender: TObject);var i: integer;begin for i := 2050 downto 1900 do begin combobox1.Items.Add(IntToStr(i)); end;end;
procedure TForm1.Button1Click(Sender: TObject);var x, y: integer; ng, nz: string; //年干=年份个位数- 3(适用于任何西元年,个位数小于3,借10)
begin x := StrToInt(copy(combobox1.Text, 4, 1)); if x < 3 then begin x := x - 3 + 10; end else begin x := x - 3;
end; case x of 1: ng := '甲'; 2: ng := '乙'; 3: ng := '丙'; 4: ng := '丁'; 5: ng := '戊'; 6: ng := '己'; 7: ng := '庚'; 8: ng := '辛'; 9: ng := '壬'; 10: ng := '癸'; end; //年支=(年份+7)÷12余数(整除余0,即余12=丑) y := (StrToInt(combobox1.Text) + 7) mod 12; case y of 1: nz := '寅'; 2: nz := '卯'; 3: nz := '辰'; 4: nz := '巳'; 5: nz := '午'; 6: nz := '未'; 7: nz := '申'; 8: nz := '酉'; 9: nz := '戌'; 10: nz := '亥'; 11: nz := '子'; 0: nz := '丑'; end; label1.caption:=ng+nz; //1(寅),2(卯),3(辰),4(巳),5(午),6(未),7(申),8(酉),9(戌),10(亥),11(子),12(丑)end;
end.
相关阅读 >>
更多相关阅读请进入《Delphi》频道 >>