PHP Dersleri

PHP ile Miladi/Hicri Yıla Çevirme

Bu dersimizde miladi yılın hicri yıla, hicri yılında miladi yıla nasıl çevirileceğinden bahsedeceğim. Yıl çevirme işlemi basit bir matematikten ibaret olduğu için çıkartma, bölme ve toplama işlemleriyle sonuca ulaşmış olacağız. Çıkan sonuçların doğru bir değer verebilmesi içinde yuvarlama fonksiyonlarını kullanacağız.

Takvimlerin başlangıç zamanları, ayın durumu, dünyanın durumu ve ayların sahip olduğu gün sayısına kadar bir çok detay bulunmaktadır. Bundan dolayı hicri ve miladi takvimler üzerinde durmadan sadece hesaplama işleminin nasıl olduğundan bahsetmek istiyorum.

Hicri Yılın Miladi Yıla Çevrilmesi

Hicri yılın, miladi yıla çevirilme işleminde ilk olarak hicri yıl 33’e bölünür. Bu işlemden çıkan sonuç hicri yıldan çıkartılır. Ardından da 622 sayısı çıkartma işlemini sonucune eklenir. Böylelikle hicri yıl, miladi yıla çevirilmiş olur. Matematiksel olarakta aşağıdaki gibi ifade edebiliriz.

Hicri yılı 33´e bölünüz                    1420 : 33 = 43.03 (=43)
Çıkan sayıyı hicri yıldan çıkarınız 1420 – 43 = 1377 (1.sayı)
1.çıkan sayıyı 622 ile toplayınız.   1377 + 622 = 1999

Yukarıdaki gibi hicri yılı miladi yıla çevirebilirsiniz. Şimdi de bu işlemleri PHP ile gerçekleştirelim. Bunun için bir fonksiyon oluşturalım ve her yerde kullanalım.

function miladi_cevir($yil){
    $adim1  = floor($yil / 33);
    $adim2  = $yil - $adim1;
    $sonuc  = $adim2 + 622;
    return $sonuc;
}
echo miladi_cevir("1420");  // sonuç : 1999 olacaktır.

Yukarıdaki gibi basit bir şekilde hicri yılı, miladi yıla çevirebilirsiniz. Şimdide bunun tam tersini yapalım.

Miladi Yılın Hicri Yıla Çevrilmesi

Miladi yılın, hicri yıla çevirilmesi için ilk olarak miladi yıldan 621 sayısı çıkartılır. Elde edilen sonuç 33’e bölünür. Bölme sonucu elde edilen değer, çıkartma işlemi sonrasında elde edilen değerler toplanarak hicri yıl bulunmuş olunur. Matematiksel olarakta aşağıdaki gibi ifade edebiliriz.

Miladi yıldan 621 rakamını çıkarınız           1999 – 621 = 1378 (2.sayı)
(2.sayı) çıkan sayıyı 33´e bölünüz               1378 : 33 = 41.75 (=42)
Bölümü 2.çıkan sayı ile toplayınız               1378 + 42 = 1420

Yukarıdaki gibi miladi yılı hicri yıla çevirebilirsiniz. Şimdi de bu işlemleri PHP ile gerçekleştirelim. Bunun için bir fonksiyon oluşturalım ve her yerde kullanalım.

function hicri_cevir($yil){
    $adim1  = $yil - 621;
    $adim2  = ceil($adim1 / 33);
    $sonuc  = $adim1 + $adim2;
    return $sonuc;
}
echo hicri_cevir("1999"); // sonuç : 1420 olacaktır.

Yukarıdaki gibi basit bir şekilde miladi yılı, hicri yıla çevirebilirsiniz. Detaylı bilgiye “faik reşit unat – hicri tarihleri miladi tarihe çevirme kılavuzu” buradan ulaşabilirsiniz.

İlgili Makaleler

2 Yorum

  1. İbrahim Bey İyi Günler;
    hatim takibi için bana her yılın 1 ramazanının bulunacağı gün lazım. Bunun için 354 gün ilerletiyordum fakat 355 çeken yıl olunca sıkıntı oluyor. 30 lu yıllarda 2,5,7,10, 13, 15,18,21,24,26,29 olanlar 355 diğerleri 354 gün çekiyor.

    2020 den başlattığımı varsayarak
    1 ramazan 2020 yılı için 24.04.2020
    1 ramazan 2021 i bulurken 354 gün eklenip 13.04.2021
    1 ramazan 2022 i bulurken 354 gün ekleyip 02.04.2022
    1 ramazan 2023 ü bulurken 355 gün eklenip 23.03.2023 bulunması lazım.
    hangisi 355 hangisi 354 bilemiyorum.

    miladi tarihe 1 miladi yıl eklenebilir mi?
    çözümü var mıdır ?

    1. henüz doğmamış kabak kafalı torunlarımızın beşiğini salladığı ebeveynlerden biri dedi ki:

      4everproxy benzeri kullanarak:eksi gregoryen takvim
      tarih 10 gün ileri atildi. bu yüzden de 1582’de 4 ekimden hemen sonra 15 ekim geldi
      php hesabında bu 10 gün kayma diye bir işlemin yok, ayrıca: her yüz senede bir dörde bölündüğü halde şubat 28 çeker, ama her 400 senede bir şubat 29 çeker. gregoryen takvim ruslarda ve avrupada farklı kritelere göre aşamalı uygulanır. bakarız eğer orası rusya ise ruslara özgü gregoryen hesabına göre tarih hesaplanır, avrupanın batısı ise yine yer ve zamana göre farklı hesap kriterleri devreye girer. gregoryen takvim bir traji komedidir. önüne gelen kral örneğin agustus kendine özgü kibirle ağustos ayınakendi ismini verip ayrıca bir gün ekletip 30 yerine 31 çektirmiştir. bu EGO delisinden önceki Ağustoslar farklı isimle 30 çeker iken, sonradan 31 olarak hesaba konmalı. traji komedileri say say bitmez.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir