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;