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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/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 = <a href="http://arsiv.pilli.com/etiket/if-vAy------------vAyS--Muharrem------elif-vAy------------vAyS--Safer------elif-vAy------------vAyS--Rebiül-Evvel------elif-vAy------------vAyS--Rebiül-Ahir------elif-vAy------------vAyS--Cemaziyel-Evvel------elif-vAy------------vAyS--Cemaziyel-Ahir------elif-vAy------------vAyS--Recep------elif-vAy------------vAyS--Saban---------------------------------elif-vAy-------------------------------------------vAyS--Ramazan-------------------------------elif-vAy------------------------------------------vAyS--Sevval--------------------------------elif-vAy------------vAyS--Zilkade------elif-vAy------------vAyS--ZilHicce------return-vAyS------Çevirme-Fonksiyonu--def-miladiToHicrisGun-sAy-sYil------vAyStr---------vMesaj---------jd-------intPartsYil----intPartsAy----intPartsAyintPartsAy--intPartintPartsYilintPartsAy---sGun------l--------jd----------n--------intPartl------l--------l----n--------j--------intPartlintPartlintPartlintPartl------l--------lintPartjintPartjintPartjintPartj------vAy------math.ceilintPartl-------vGun-----math.ceillintPartvAy-------vYil-----math.ceil-n--j-------vAyStr---ayBulintvAy------if-vAyStr--Sevval----------if-vGun---and-vGun----------------vMesaj--Ramazan-Bayramı-Tatili-------elif-vAyStr--ZilHicce-Örnek--Tarihi-Kurban-Bayramı----------if-vGun---and-vGun----------------vMesaj--Kurban-Bayramı-Tatili-------vReturn-">
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 = </a>"
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))