有更简单的,要告诉我幺
g1…g4年干月干日干时干,z1…z4地支
甲1…癸10,子1…亥12
procedure 确定GZ1_4;
begin
RiQi:= trunc ( Form1.DateTimePicker1.Date );
ShiJian := frac ( Form1.DateTimePicker2.Time );
decodedate(RiQi,XNian,Xyue, XRi);
decodeTime (ShiJian,XShi,XFen,XMiao,xx);
{g3 z3 z4 g4 确定 与节气无关}
g3:=trunc(RiQi-encodedate(1919,11,8))mod 10+1 ;
z3:=trunc(RiQi-encodedate(1919,11,8))mod 12+1 ;
z4:= Round(XShi/2+0.1)+1;
//Round 四舍六入 +0.1
if XShi=23 then //23 以后按下一天计算
begin
z4:=1; // z4 确定
inc(g3);if g3=11 then g3:=1 ; // g3 最终确定
inc(z3);if z3=13 then z3:=1 ; // z3 最终确定
end ;
g4 :=(g3*2+z4-2)mod 10;
if g4=0 then g4:=10; // g4 最终确定
{g1 z1 z2 g2 暂时确定 与节气有关}
g1:= (XNian-4 ) mod 10+ 1;
z1:= (XNian-4 ) mod 12+ 1;
if Xyue