SA
Arkadaşlar Delphiile programlamaya yeni başladım.Sizlere 2 tane takıldığım sorum olacak.
1- Ben hazırladığım programlarda belirli dini günlerde kullanıcıya uyarı mesajı ve kutlama tebriği vermek istiyorum.Tabi buda Hicri Takvimin yapısı doloyısı ile normal tarih fonksiyonları ile mümkün görünmüyor.İnternetten araştırdım fakat herhangi birşeyler bulamadım. Sizin bir bilginiz var mı?
2-Şu an üzerinde çalıştığım basit bir veritabanı programım var. Sorunum programı her RUN yapışımda aşağıdaki hata mesajı ile karşılaşıyorum:
a Class ElistError with message
‘’ List index out of bounds (0) ‘’
Sizce bunun sebebi ne olabilir?
Not: Delphi7 ve Paradox table kullanıyorum
Saygılar
Oğuz ÖZTÜRK
E-mail: oguzozturk74@yahoo.com
List index out of bounds (0)
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
Selam.
- Miladi Takvim <-> Hicri takvim dönüşümünü biliyorsunuzdur. Bunu bir fonksiyon yazarak çözebilirsiniz.
- Fonksiyon için gerekli formülü bilmeyenler için
(Kaynak : http://www.ottomanlanguage.com/sayi.htm)
Takvim
Osmanlıca metinlerde hicri, rumi ve miladi takvimler kullanılmıştır. Kameri takvim olarak da bilinen Hicri takvim yeni Ayın göründüğü günün başlangıç kabul edildiği, 12 aydan oluşan yıla dayanan takvim sistemidir. Hz. Ömer döneminde düzenlenen bu takvimde Hz. Muhammed’in Mekke’den Medine’ye göç ettiği tarih olan 622 başlangıç yılı olarak kabul edilir. Osmanlılar 17. yüzyılın ikinci yarısına değin bütün resmi işlerde bu takvimi kullandılar. Hicri tarihlerin Miladi tarihe çevrilmesinde çeşitli yöntemler kullanılmıştır. Bunlar içinde yaygın olarak kullanılanı şu şekilde formüle edilmiştir:
Örneğin,
Ay yılı (354 gün) ile Güneş yılı (365 gün) arasında 11 günlük fark olması bazı sorunlara yol açıyordu. Bu sebeple 1676’da (H. 1087) yeni bir takvim kullanılmaya başladı. Güneş yılını 365 gün olarak kabul eden Jülyen takvimini temel alan bu güneş takvimine Rumi takvim ya da mali takvim adı verildi. Mali işlemler için 1739’da (H. 1152) yürürlüğe giren Rumi takvime göre başlangıç yılı gene 622, yılın ilk günü ise 1 Mart olarak kabul edildi. 1839’da (H. 1255) tüm mali ve resmi işlerde Rumi takvim kullanılmaya başladı. Öte yandan 19. yüzyıl sonuna değin Rumi tarihlerin yanı sıra Hicri tarihlerde konuluyordu. Rumi yılların Miladi yıla çevrilmesinde ise şu yöntem izlenir:
Örneğin,
Mali takvim yılbaşının 1 Mart’ta olması sebebiyle Gregoryen (Miladi) takvime göre 13 gün geride kalıyordu. Bu yüzden 1917’de (H. 1332, R. 1333) Miladi takvim de kullanılmaya başladı. Cumhuriyet’in ilanından sonra, 1926’da Rumi takvim, bütçe dışında bütün resmi işlerde kaldırıldı ve Miladi takvim kabul edildi. Öte yandan Mali yılbaşı 1 Mart olarak kaldı, 1983’te bu uygulamaya da son verilerek mali yılbaşı 1 Ocak olarak kabul edildi.
- List index out of bounds (0) hatası konusunda da forumda arama yaptırırsanız bu hatanın oluşum sebebi hakkında gerekli bilgilere ulaşırsınız.
- Yine de çözemezseniz, muhtemel hata oluşan kod örneği ile mesaj yazdığınızda buradan yardımcı olunmaya çalışıacaktır.
- Miladi Takvim <-> Hicri takvim dönüşümünü biliyorsunuzdur. Bunu bir fonksiyon yazarak çözebilirsiniz.
- Fonksiyon için gerekli formülü bilmeyenler için
(Kaynak : http://www.ottomanlanguage.com/sayi.htm)
Kod: Tümünü seç
//-------------------------------------------------------------------------------
Osmanlıca metinlerde hicri, rumi ve miladi takvimler kullanılmıştır. Kameri takvim olarak da bilinen Hicri takvim yeni Ayın göründüğü günün başlangıç kabul edildiği, 12 aydan oluşan yıla dayanan takvim sistemidir. Hz. Ömer döneminde düzenlenen bu takvimde Hz. Muhammed’in Mekke’den Medine’ye göç ettiği tarih olan 622 başlangıç yılı olarak kabul edilir. Osmanlılar 17. yüzyılın ikinci yarısına değin bütün resmi işlerde bu takvimi kullandılar. Hicri tarihlerin Miladi tarihe çevrilmesinde çeşitli yöntemler kullanılmıştır. Bunlar içinde yaygın olarak kullanılanı şu şekilde formüle edilmiştir:
Kod: Tümünü seç
H x 3
H- -------- + 622 = M
100
Kod: Tümünü seç
1326 x 3 = 3978 / 100 = 39,78
1326 - 39,78 = 1286,22
1286 + 622 = 1908
Kod: Tümünü seç
R + 584 = M
Kod: Tümünü seç
1326 + 584 = 1910
Kod: Tümünü seç
//-------------------------------------------------------------------------------
- Yine de çözemezseniz, muhtemel hata oluşan kod örneği ile mesaj yazdığınızda buradan yardımcı olunmaya çalışıacaktır.
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN
SA
Muharrem Bey
Cevabınız için sağolun.
1-En sonunda Veritabanı tablomu yeniden oluşturdum ve program hata vermekten vazgeçti. Sanırım alan isimlerini uzun yazmıştım , sebebi o olabilir. ( CALISTIGIGUNSAYISI ismindeki alanı Gun olarak değiştirdim).
2-Verdiğiniz siteyi inceledim. Zaten sizin de belirttiğinizden başka işime yarar birşeyler bulamadım. Verilen formül sadece verilen yılı çeviriyor. Fakat bana Gün/Ay/Yıl olarak çeviri lazım. Benim düşündüğüm; elime kalem kağıt alıp önümüzdeki 20 yıl için sözkonusu Mübarek günleri belirlemek ve bunları Date fonksiyonuna gün olarak eklemek.
Bu arada biraz geçte olsa, bütün herkesin geçmiş mübarek Kurban Bayramını kutlamak isterim.
Saygılar,
Oğuz Öztürk
Muharrem Bey
Cevabınız için sağolun.
1-En sonunda Veritabanı tablomu yeniden oluşturdum ve program hata vermekten vazgeçti. Sanırım alan isimlerini uzun yazmıştım , sebebi o olabilir. ( CALISTIGIGUNSAYISI ismindeki alanı Gun olarak değiştirdim).

2-Verdiğiniz siteyi inceledim. Zaten sizin de belirttiğinizden başka işime yarar birşeyler bulamadım. Verilen formül sadece verilen yılı çeviriyor. Fakat bana Gün/Ay/Yıl olarak çeviri lazım. Benim düşündüğüm; elime kalem kağıt alıp önümüzdeki 20 yıl için sözkonusu Mübarek günleri belirlemek ve bunları Date fonksiyonuna gün olarak eklemek.

Bu arada biraz geçte olsa, bütün herkesin geçmiş mübarek Kurban Bayramını kutlamak isterim.
Saygılar,
Oğuz Öztürk
Tekrar selam...
- Sana alternatif sunayım o zaman...
http://www.ori.unizh.ch/hegira.html linkinde Conversion of Islamic and Christian dates başlıklı bir html tabanlı hesap cetveli var..
- Buradaki HTML kaynak kodunda formül mevcut, eğer doğru hesaplıyorsa, bu formüllerden çıkarımda bulunabilir Delphi dilinde bir fonksiyon yazabilirsin.
ayrıca Kuzey Amerika'ya göre ama yardımcı olur diye veriyorum..
http://moonsighting.com/calendar.html takvim var... gün karşılaştırmasını tablo şeklinde görmek faydalı olur diye gönderiyorum bunu.
- Vakim olsa ben yazardım ama şu sıralar çok yoğunum...
- Sana alternatif sunayım o zaman...
http://www.ori.unizh.ch/hegira.html linkinde Conversion of Islamic and Christian dates başlıklı bir html tabanlı hesap cetveli var..
- Buradaki HTML kaynak kodunda formül mevcut, eğer doğru hesaplıyorsa, bu formüllerden çıkarımda bulunabilir Delphi dilinde bir fonksiyon yazabilirsin.
ayrıca Kuzey Amerika'ya göre ama yardımcı olur diye veriyorum..
http://moonsighting.com/calendar.html takvim var... gün karşılaştırmasını tablo şeklinde görmek faydalı olur diye gönderiyorum bunu.
- Vakim olsa ben yazardım ama şu sıralar çok yoğunum...
En son mrmarman tarafından 07 Şub 2004 07:47 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Kıdemli Üye
- Mesajlar: 574
- Kayıt: 01 Şub 2004 12:29
- Konum: Erdemli - MERSİN