bildirgec.org

husonet

11 yıl önce üye olmuş, 2 yazı yazmış. 0 yorum yazmış.

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

husonet | 22 April 2011 12:01

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))

delphi Miladi Takvim’i Hicri’ye Çevirme + Dini Bayram Günlerini Bulma

husonet | 09 April 2011 14:10

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.

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
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;