Ass. wr.wb... pagi yang indah saatnya buat beraktifitas kembali dengan penuh olahraga jemari dengan sang keyboard. heheheee....
Pagi ne ane ingin berbagi dikit ilmu neh tentang bagaimana membuat kalender / tanggal Hijriah, mungkin sudah artikel yang bekaitan dengan ini, setidaknya ingin mengingatkan kembali (mungkin file ilang kali yah...!!!! ^_^) okey sebelum kita mulai membuat tanggal hijriah menggunakan delphi, temen2 siepin segelas susu anget juga boleh asal gk usah tuaq ja yah (kalo tuaq manis juga boleh. ^_^)... Sudah siap dengan minuman dan cemilah, temen2 buka delphinya dan copy paste source dibawah ini ke form yang temen buat tadi :
Kalo sudah, dibawah ini ada sebuah function TglHijriah yang berfungsi merubah dari tanggal masehi ke tanggal Hijriah.
function TglHijriah(AValue: TDateTime; HijriDiff: integer=0): TDateTime;
var Y,M,D: word; Calculate,temp1,temp2,temp3: integer;
begin
DecodeDate(AValue, Y, M, D); Inc(D,HijriDiff);
if ((Y>1582) or ((Y=1582) and (M>10)) or ((Y=1582) and (M=10) and (D>14))) then
Calculate:=Trunc((1461*(Y+4800+Trunc((M-14)/12)))/4)+Trunc((367*(M-2-12*(Trunc((M-14)/12))))/12)-Trunc((3*(Trunc((Y+4900+Trunc((M-14)/12))/100)))/4)+D-32075 else Calculate:=367*Y-Trunc((7*(Y+5001+Trunc((M-9)/7)))/4)+Trunc((275*M)/9)+D+1729777;temp1:=Calculate-1948440+10632;
temp2:=Trunc((temp1-1)/10631);temp1:=temp1-10631*temp2+354;
temp3:=(Trunc((10985-temp1)/5316))*(Trunc((50*temp1)/17719))+(Trunc(temp1/5670))*(Trunc((43*temp1)/15238));temp1:=temp1-(Trunc((30-temp3)/15))*(Trunc((17719*temp3)/50))-(Trunc(temp3/16))*(Trunc((15238*temp3)/43))+29;
M:=Trunc((24*temp1)/709); D:=temp1-Trunc((709*M)/24);
Y:=30*temp2+temp3-30; Result:=EncodeDate(Y,M,D);
end;
Setelah source code diatas dicopy di bawah implementation {$R *.dfm} kemudian dapa Form Show atau form create copy perintah dibawah ini :
procedure TForm1.FormCreate(Sender: TObject);
var tgl:TDate; bln:String[14];
begin
Tgl:=TglHijriah(Now);
Label1.Caption:=FormatDateTime('DDDD, dd MMMM yyyy',Now)+' Masehi';
Label2.Caption:=FormatDateTime('dd MM yyyy',tgl)+' Hijriah';
Case StrToInt(FormatDateTime('MM',tgl)) of
1: bln:='Muharram';
2: bln:='Shafar';
3: bln:='Rabi’ul Awal';
4: bln:='Rabi’ul Akhir';
5: bln:='Jumadil Awal';
6: bln:='Jumadil Akhir';
7: bln:='Rajab';
8: bln:='Sya’ban';
9: bln:='Ramadhan';
10: bln:='Syawal';
11: bln:='Zulqaidah';
12: bln:='Zulhijjah';
End;
Label3.Caption:=FormatDateTime('dd ',tgl)+bln+FormatDateTime(' yyyy',tgl)+' Hijriah';
end;
Nah kalo udah selese yah tinggal dijalankan aja dah, pada label 1 menunjukkan tanggal Masehi, Label 2 dan 3 tanggal Hijriahnya.
Semoga bermanfaat buat temen2 yah..!!! ^_^
Source code dan Aplikasi bisa di download disini
No comments:
Post a Comment