Merhaba,
Delphi ile uygulama geliştirirken miladi takvim haricinde Fars yada Hicri takvim kullanma durumunda nasıl bir yol izlenir tecrübesi olan arkadaş var mı?
Fars yada hicri takvim kullanmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Fars yada hicri takvim kullanmak
İyi akşamlar. Ezan projem için böyle bir kod parçası kullanmıştım. Umarım işine yarar.
Kod: Tümünü seç
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əbiül-əvvel';
4: AyStr:= 'Rəbiül-axır';
5: AyStr:= 'Cəmadiyəl-əvvəl';
6: AyStr:= 'Cəmadiyəl-axır';
7: AyStr:= 'Rəcəb';
8: AyStr:= 'Şaban';
9: AyStr:= 'Ramazan';
10: AyStr:= 'Şevval';
11: AyStr:= 'Zil-Qədə';
12: AyStr:= 'Zil-Hiccə';
end;
if AyStr = 'Şə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ı');
HijriLabel.Caption := (IntToStr(Gun) + ' ' + AyStr+ ' ' + IntToStr(Yil));
end;
procedure Miladi;
var
Ay: Word;
AyStr: string;
begin
Ay := (GetDate (2));
case (Ay) of
1: AyStr:= 'Yanvar';
2: AyStr:= 'Fevral';
3: AyStr:= 'Mart';
4: AyStr:= 'Aprel';
5: AyStr:= 'May';
6: AyStr:= 'İyun';
7: AyStr:= 'İyul';
8: AyStr:= 'Avqust';
9: AyStr:= 'Sentyabr';
10: AyStr:= 'Oktyabr';
11: AyStr:= 'Noyabr';
12: AyStr:= 'Dekabr';
end;
MiladiLabel.Caption := (IntToStr(GetDate (3)) + ' ' + AyStr + ' ' + IntToStr(GetDate (1)));
end;