kemarin ada permintaan dari seorang temen yang baru aja lulus sidang TA, katanya ada revisi program jadi masalah pendaftaran itu harus diatas 17 tahun, kalau dibawah itu nggak bisa… tanpa fikir panjang saya langsung menyanggupi, tapi ketika sudah didepan komputer, saya malah bingung sendiri loh trus ngitung umurnya gimana ya ???
akhirnya dengan sedikit khayalan tingkat tinggi dan renungan maut dapet juga procedurenya.. bagi programmer pascal/delphi/lazarus/kylix berikut ini ada rutin programnya…
procedure Tmenuutama.umur(date1: tdatetime; date2: tdatetime; var tahun: integer; var bulan: integer; var hari: integer);
var y1, y2, y3, m1, m2, m3,d1, d2, d3, x: word;
begin
DecodeDate(date1,y1,m1,d1);
DecodeDate(date2,y2,m2,d2);x := 0;
case m2 - 1 of
1,3,5,7,8,10,12 : x:=31;
4,6,9,11: x:=30;
2 : if y2 mod 4 = 0 then x:=29 else x:= 28;
end;
y3 := y2 - y1;
if (m2 < m1) and (y3 > 0) then
begin
y3 := y3 - 1;
m3 := (12 - m1) + m2;
end
else
begin
m3 := m2 - m1;
end;
if (d2 < d1) and (m3 > 0) then
begin
m3 := m3 -1;
d3 := (x - d1) + d2
end
else
begin
d3 := d2 - d1
end;
tahun := y3;
bulan := m3;
hari := d3;
end;
adapun penggunaannya adalah sebagai berikut
var tahun, bulan,hari : integer;.....
umur(EncodeDate(1982,09,03),now(),tahun,bulan,hari);
label3.Caption := inttostr(tahun) + ' tahun, '+ inttostr(bulan) + ' bulan,' + inttostr(hari) + ' hari';




