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.
Kod: Tümünü seç
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;
Python versionu için link python miladi takvimi hicri takvime çevirme, bayram günlerini bulma, dini tatilleri bulma
Hüseyin Özdemir.
huseyin@durmus.net