Fars yada hicri takvim kullanmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AliCinkilic
Üye
Mesajlar: 43
Kayıt: 01 Kas 2013 10:03

Fars yada hicri takvim kullanmak

Mesaj gönderen AliCinkilic »

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ı?
Kullanıcı avatarı
AliZairov
Üye
Mesajlar: 341
Kayıt: 06 Nis 2012 03:09
Konum: Azerbaycan, Bakü
İletişim:

Re: Fars yada hicri takvim kullanmak

Mesaj gönderen AliZairov »

İ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;
Cevapla