Kod:
uses Math; function YilAyGun (Index: Integer): Integer; var Yil, Ay, Gun: Word; begin DecodeDate(Date, Yil, Ay, Gun); case Index of 1: Result := Yil; 2: Result := Ay; 3: Result := Gun; end; end; function IntPart(FloatNum: Double): Double; begin if FloatNum < - 0.0000001 then Result := Ceil(FloatNum - 0.0000001) else Result := Floor(FloatNum + 0.0000001); end; procedure Hijri; var Tarix: TDateTime; JD, L, N, J: TDateTime; Gun, Ay, Yil: Word; AyStr: string; begin Tarix := Date; DecodeDate(Tarix, Yil, Ay, Gun); jd := IntPart((1461 * (Yil + 4800 + IntPart((Ay - 14) / 12))) / 4) + IntPart(( 367 * (Ay - 2 - 12 * (IntPart((Ay - 14) / 12)))) / 12) - IntPart((3 *(IntPart((Yil + 4900 + IntPart((Ay - 14) / 12)) / 100))) / 4) + Gun - 32075; L := Jd - 1948440 + 10632; N := IntPart((l - 1) / 10631); L := L - 10631 * N + 354; J := (IntPart((10985 - L) / 5316)) * (IntPart((50 * L) / 17719)) + (IntPart(L / 5670)) * (IntPart((43 * L) / 15238)); L := L - (IntPart((30 - J) / 15))*(IntPart((17719 * J) / 50 ))-(IntPart(J / 16))*(IntPart((15238 * J) / 43 )) + 29; Ay := Ceil(((IntPart((24 * L) / 709)))); Gun := Ceil(L - IntPart((709 * ay) / 24)); Yil := Ceil(30 * N + J - 30); case (Ay) of 1: AyStr:= 'M?h?rr?m'; 2: AyStr:= 'S?f?r'; 3: AyStr:= 'R?biul-?vvel'; 4: AyStr:= 'R?biul-ax?r'; 5: AyStr:= 'C?madiy?l-?vv?l'; 6: AyStr:= 'C?madiy?l-ax?r'; 7: AyStr:= 'R?c?b'; 8: AyStr:= 'Saban'; 9: AyStr:= 'Ramazan'; 10: AyStr:= 'Sevval'; 11: AyStr:= 'Zil-Q?d?'; 12: AyStr:= 'Zil-Hicc?'; end; if AyStr = 'S?vval' then begin if (Gun >= 1) and (Gun <= 3) then ShowMessage('Ramazan Bayram?'); end else if AyStr = 'ZilHicc?' then if (Gun >= 10) and (Gun <= 13) then ShowMessage('Qurban Bayram?'); Main.HijriLabel.Caption := ('Hicri: ' + IntToStr(Gun) + ' ' + AyStr+ ' ' + IntToStr(Yil)); end; procedure Miladi; var Ay: Word; AyStr: string; begin Ay := (YilAyGun (2)); case (Ay) of 1: AyStr:= 'Yanvar'; 2: AyStr:= 'Fevral'; 3: AyStr:= 'Mart'; 4: AyStr:= 'Aprel'; 5: AyStr:= 'May'; 6: AyStr:= 'Iyun'; 7: AyStr:= 'Iyul'; 8: AyStr:= 'Avqust'; 9: AyStr:= 'Sentyabr'; 10: AyStr:= 'Oktyabr'; 11: AyStr:= 'Noyabr'; 12: AyStr:= 'Dekabr'; end; Main.MIladiLabel.Caption := ('Miladi: ' + IntToStr(YilAyGun (3)) + ' ' + AyStr + ' ' + IntToStr(YilAyGun (1))); end;