makaleler / Python Programlama / python miladi takvimi hicri takvime çevirme, bayram günlerini bulma, dini tatilleri bulma

python miladi takvimi hicri takvime çevirme, bayram günlerini bulma, dini tatilleri bulma

28.01.2011 18:19:44

Bu yazdığım kodla Miladi Takvimi Hicri Takvime cevirebilir ve Dini Bayram tatillerini bulabilirsiniz.

#!/usr/bin/python
#-*- coding:utf-8 -*-

import math
from datetime import datetime
import time

#--------------------------------------
#İnt Part fonksiyonu
#Kullanıcı adı: husonet
#Hüseyin Özdemir
#pythontr.com
#28.01.2011

#--------------------------------------
#Yuvarlama·
def intPart(sFloatNum):
    if sFloatNum < -0.0000001:
        return math.ceil(sFloatNum -0.0000001)
    else:
        return math.floor(sFloatNum +0.0000001)
#--------------------------------------
#String olarak Hicri ay getir
def ayBul(sAy):
    vAy = sAy
    vAyS    = ""
    if vAy == 1:
        vAyS = 'Muharrem'
    elif vAy == 2:
        vAyS = 'Safer'
    elif vAy == 3:
        vAyS = 'Rebiü\'l- Evvel'
    elif vAy == 4:
        vAyS = 'Rebiü\'l- Ahir'
    elif vAy == 5:
        vAyS = 'Cemaziye\'l- Evvel'
    elif vAy == 6:
        vAyS = 'Cemaziye\'l- Ahir'
    elif vAy == 7:
        vAyS = 'Recep'
    elif vAy == 8:
        vAyS = 'Saban'                           
    elif vAy == 9:                               
        vAyS = 'Ramazan'                         
    elif vAy == 10:                              
        vAyS = 'Sevval'                          
    elif vAy == 11:
        vAyS = 'Zi\'l-ka\'de'
    elif vAy == 12:
        vAyS = 'Zi\'l-Hicce'
    return vAyS

#--------------------------------------
#Çevirme Fonksiyonu
def miladiToHicri(sGun, sAy, sYil):
    vAyStr  = ''
    vMesaj  = ''
    jd      = intPart((1461*(sYil + 4800 + intPart((sAy-14)/ 12)))/ 4) + intPart((367*(sAy-2-12*(intPart((sAy-14)/ 12))))/ 12)-intPart((3*(intPart((sYil+4900+intPart((sAy-14)/ 12))/ 100)))/ 4)+sGun-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
    vAy     = math.ceil(((intPart((24*l)/ 709))))
    vGun    = math.ceil(l-intPart((709*vAy)/ 24))
    vYil    = math.ceil(30* n + j -30)
    vAyStr  = ayBul(int(vAy))
    if vAyStr == 'Sevval':
        if vGun >= 1 and vGun <= 3:
            vMesaj = 'Ramazan Bayramı Tatili !!!'
    elif vAyStr == 'Zi''l-Hicce': #Örnek 21/01/2005 Tarihi Kurban Bayramı
        if vGun >= 10 and vGun <= 13:
            vMesaj = 'Kurban Bayramı Tatili !!!'
    vReturn = """
                 Tarih: %02d %s %04d
                 Mesaj: %s
              """ % (vGun, vAyStr, vYil, vMesaj)

    #return str(vGun) + ' ' + vAyStr + ' ' + str(vYil) + ' ' + vMesaj
    return vReturn

#--------------------------------------
#Örnek Deneme
print miladiToHicri(float(19),float(8),float(2012))
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda