Miladi Takvim'i Hicri'ye Çevirme + Dini Bayram Günlerini Bul

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Miladi Takvim'i Hicri'ye Çevirme + Dini Bayram Günlerini Bul

Mesaj gönderen husonet »

Arkadaşlar bu konu Forum'da Çok soruluyordu ilgimi çekti ve sizler için yazdım. Hayırlı olsun...

Yazdığım Kodlar Türk Tarih Kurumu Sayfasına göre test edebilirsiniz. Ben on onbeş defa test ettim çalışıyor. http://www.ttk.gov.tr/takvim.asp

Uses kısmına Math unit'ini eklemeyi unutmayın ayrıca form'unuza 1 adet DateTimePicker bileşeni ve 1 adet Button ekleyiniz.

Kod: Tümünü seç

Function IntPart(FloatNum:Double):Double;
//Yazan:Husonet
//Tarih:14.04.2004
Begin
    if FloatNum < -0.0000001 Then
        Result:= Ceil(FloatNum -0.0000001)
    Else
        Result:= Floor(FloatNum +0.0000001);

End;


procedure TForm1.Button1Click(Sender: TObject);
//Yazan:Husonet
//Tarih:14.04.2004
var
    Tarih:TDateTime;
    JD, L,N, J:TDateTime;
    Gun, Ay, Yil: Word;
    AyStr:String;
begin
    Tarih := DateTimePicker1.Date;
    DecodeDate(Tarih, 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:= 'Muharrem';
        2: AyStr:= 'Safer';
        3: AyStr:= 'Rebiü''l- Evvel';
        4: AyStr:= 'Rebiü''l- Ahir';
        5: AyStr:= 'Cemaziye''l- Evvel';
        6: AyStr:= 'Cemaziye''l- Ahir';
        7: AyStr:= 'Recep';
        8: AyStr:= 'Saban';
        9: AyStr:= 'Ramazan';
        10: AyStr:= 'Sevval';
        11: AyStr:= 'Zi''l-ka''de';
        12: AyStr:= 'Zi''l-Hicce';
    End;
    if AyStr = 'Sevval' Then //Örnek 14/11/2004 Tarihi Ramazan Bayramı
    Begin
        if (Gun >= 1) and (Gun <=3) then
            ShowMessage('Ramazan Bayramı Tatili !!!');
    End
    Else
    if AyStr = 'Zi''l-Hicce' Then //Örnek 21/01/2005 Tarihi Kurban Bayramı
        if (Gun >= 10) and (Gun <=13) then
            ShowMessage('Kurban Bayramı Tatili !!!');



    ShowMessage(IntToStr(Gun) + ' ' + AyStr+ ' ' + IntToStr(Yil));
end;
Görüşlerinizi yazarsanız sevinirim.

Python versionu için link python miladi takvimi hicri takvime çevirme, bayram günlerini bulma, dini tatilleri bulma

Hüseyin Özdemir.
huseyin@durmus.net
En son husonet tarafından 19 Mar 2007 05:49 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Ellerine sağlık Hüseyin kardeş.. :)

Saygılar
Oğuz ÖZTÜRK
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Ellerine sağlık Hüseyin.
3 Rebiü'l Evvel 1390'da doğmuşum. Sanırım miladi takvimi tercih edeceğim (yaş biraz fazla çıktı da :) )
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Rica Ederim.

Bu arada HDayi Hocam size Amca mı desem Abi mi desem ne desem siz bayağı genç gösteriyorsunuz. Bu gençliğinizin sırrı nedir? Benden 8 Yaş büyüksünüz. (9 Mayıs 1970) lisiniz galiba Yan yana gelsek eminimki benden 8 yaş buyuk olduğuna inanmazlar Aksini savunurlar. Maaşallah.

Bu arada bende bakayım Kaç yaşındayım 28 Rebiü''l- Evvel 1398 çıkıyor.
Bunda sonra yaşımı soran olursa 1398 doğumluyum diyeceğim. :lol: :lol: :lol: :lol:

İyi Çalışmalar.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Ayrıca benim şimdiye kadar emekli olmam lazımdı Yaş oranını 610 seneyemi çıkardılar? :roll:

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
mege
Admin
Mesajlar: 2360
Kayıt: 05 Şub 2004 04:32
Konum: Beşiktaş
İletişim:

Mesaj gönderen mege »

ah ah ramazan bayramı 14 Kasım Pazara geliyor, içim yandı aya gitti bal gibi tatil :evil: Kurban bayramında 21 Ocak Cuma ya :cry: :cry:
gitti tatiller ehüüü, allahtan yılbaşı ramazanla çakışmıyor, yoksa o tatilde giderdi.

ya biz buara niye diğer dinlerin bayramlarını kutlamıyoruz :P yazık değilmi gayrimüslim vatandaşlarımıza, şimdi paskalya bayramı falan olsa iyi olmazmıydı :)

şaka biyana hocam program güsel olmuş elinize sağlık. Doğum günüm 25 Zi'l Hicce 1401 :) vay be Fatihin Fedaisi ile beraber doğmuşuz :)
Kullanıcı avatarı
hdayi
Kıdemli Üye
Mesajlar: 1284
Kayıt: 29 Oca 2004 01:53
Konum: Erciyes'in eteklerinden.

Mesaj gönderen hdayi »

Valla Hüseyin özel bir sırrım yok. Allah vergisi. Normale bakarsak herhalde acaip yaşlı görünmem lazım, çay, sigara, kahve ne ararsan var. Sadece çok uyurum :)
Bu arada iyice açık etmişsin yaşımı falan, genç gösterdiğim için daha gencim falan diyordum herkese ben, şimdi ne diyeceğim :)
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned
Resim
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Mükemmel.. Tam aradığım şeydi. Bir ara kendim yazayım dedim. Nette aradım bunun formülünü. Ramazan bayramı hangi güne geliyor öğrenmek için. Ancak baktım ki iş ayın yörünge hesabına gidiyor, vazgeçmiştim. Teşekkürler.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhabalar,

hüseyin abi deneyemedim ama eminimki güzel olmuştur.

neden deneyemedim derseniz bu soruyu sormaya utanıyorum ama fonction u nereye yazacağımı bilemedim. bildiğim kadarı ile private veya public kısmına yazılıyor ama oralara yazdım begin alanını kırmızıya boyuyor ve bekliyor. begin de bi hata var diyor ama bilemedim

hata

'END' expected but 'BEGİN' found

nerde yanlışım var bilemedim.

kolay gelsin.
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Form una 1 adet dateTimePicker ve Bir adet button ekle kodu implementation kısmının altına yapıştır. Sonra da Buton un OnClick eventine bir kere tıkla Ardından Run yap.

Fonksiyonıumuz bu

Kod: Tümünü seç

Function IntPart(FloatNum:Double):Double;
Begin
    if FloatNum < -0.0000001 Then
        Result:= Ceil(FloatNum -0.0000001)
    Else
        Result:= Floor(FloatNum +0.0000001);

End; 
Geri kalanı Button bileşenimizin OnClickEvent Codu.

Kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhabalar,

6 cemaziye'l-evvel 1389 doğumlu imişim. garip geldiği kadar da hoş.

abi yardımın için sağol gördüğün gibi işi çözdüm. fonction deyince yukarıya bi yere yazıldığını sanmış idim o yüzden karıştırdım.

yorduğum için özür dilerim ve eline sağlık derim.
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Bende 20 Cemaziye'l- Ahir 1400 doğumluymuşum. :) Ama Bende yaşımı hiç göstermem :) en fazla 1405 doğumlu gibi .
I love my car.
Blog Yaptık
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

@Husonet daha önce kodunu incelemiştim ama bu gün lazım oldu kullandım. Sana Teşekkür ederim.

Kurban bayramı için <=14 yerine <=13 ile değişmesi lazım yoksa bayram 5 gün oluyor :)

Birde kandilleri de ekledim belki bakşa arkadaşların işine yarar.

Kod: Tümünü seç

         
       If AyStr = 'Recep' Then begin
            If gun = 26 Then ShowMessage('Miraç Kandili');

            If gun = 6 Then ShowMessage('Regaip Kandili')
           End;

        If AyStr = 'Saban' Then begin
            If gun = 14 Then ShowMessage('Berat Kandili')
        End;

        If AyStr = 'Rebiü''l- Evvel' Then begin
            If gun = 11 Then ShowMessage('Mevlid Kandili')
        End;
        If AyStr = 'Ramazan' Then begin
            If gun = 26 Then ShowMessage('Kadir Gecesi')
        End;
Herkese iyi çalışmalar..
I love my car.
Blog Yaptık
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

P206 yazdı:@Husonet daha önce kodunu incelemiştim ama bu gün lazım oldu kullandım. Sana Teşekkür ederim.

Kurban bayramı için <=14 yerine <=13 ile değişmesi lazım yoksa bayram 5 gün oluyor :)

Birde kandilleri de ekledim belki bakşa arkadaşların işine yarar.

Kod: Tümünü seç

         
       If AyStr = 'Recep' Then begin
            If gun = 26 Then ShowMessage('Miraç Kandili');

            If gun = 6 Then ShowMessage('Regaip Kandili')
           End;

        If AyStr = 'Saban' Then begin
            If gun = 14 Then ShowMessage('Berat Kandili')
        End;

        If AyStr = 'Rebiü''l- Evvel' Then begin
            If gun = 11 Then ShowMessage('Mevlid Kandili')
        End;
        If AyStr = 'Ramazan' Then begin
            If gun = 26 Then ShowMessage('Kadir Gecesi')
        End;
Herkese iyi çalışmalar..
Düzeltme için teşekkür ederim yeni gördüm :oops:

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

23.10.2006 tarihi bu koda göre 30.Ramazan.1427, diyanet işlerinin sitesien göre ise, http://www.diyanet.gov.tr/turkish/default.asp, 1 Şevval 1427. Ramazan bayramının ilk günü. 1 günlük bir hata yapıyor algoritma.
Cevapla