Counting Age in Years, Months, Days Format

umur

Jika ada kebutuhan menghitung umur, berikut trik nya menggunakan computed field di datawindow :

  1. lahir dan meninggal adalah kolom dengan tipe data tgl,
    menghitung tahun tinggal dikurangi saja sambil ngecek jika bulantgl meninggal lebih kecil dari bulantgl lahir maka tahunnya dikurangi lagi 1
  2. lalu untuk yang menghitung bulan, di cek dulu bulan meninggal nya jika lebih kecil tambahkan dg 12 dan cek lagi jika tgl meninggalnya lebih kecil, hasilnya dikurangi satu
  3. untuk menghitung hari nya tambah ribet tu, karena harus menghitung bulan sebelum meninggalnya brp hari apakah 31.30,29,28 jika tanggal meninggal lebih kecil dari tanggal lahir nya. contoh kasusnya gini gan :

umur_29
dikarenakan Feb 2015 berakhir di tanggal 28, maka script dibawah sudah menghitung untuk Feb 2016 yang berakhir di 29 sehingga perhitungan hari nya menjadi lebih akurat.

Expression Script nya seperti ini ;

if ( string ( meninggal, 'yyyymmdd' ) < string ( lahir, 'yyyymmdd' )
,'- Thn ', 
if ( year(meninggal) = year(lahir) 
, '0 Thn ', string( year(meninggal) -year(lahir) +
if ( string(meninggal,'mmdd') < string(lahir,'mmdd') 
, -1
, 0
) + ' Thn ' )
)
)

+

if ( string ( meninggal, 'yyyymmdd' ) < string ( lahir, 'yyyymmdd' )
,'- Bln '
, case ( long(string(meninggal,'mmdd')) - long(string(lahir,'mmdd'))
when 0 then '0 Bln'
when is > 0 
then string(
if(day(meninggal) >= day(lahir)
,month(meninggal) - month(lahir)
,month(meninggal) - month(lahir) -1)
)+' Bln '
when is < 0
then string(11 + month(meninggal) - month(lahir))+' Bln '
)
)

+

if ( string ( meninggal, 'yyyymmdd' ) < string ( lahir, 'yyyymmdd' )
,'- Hr ', 
if ( day(meninggal) = day(lahir) 
, '0 Hr '
, string( day(meninggal) -day(lahir) +
if ( string(meninggal,'dd') < string(lahir,'dd') 
,
if ( isdate ( string ( meninggal, 'yyyy-'+string(if( month(meninggal)=1,12, month(meninggal)-1),'00')+'-31')) , 31, 
if ( isdate ( string ( meninggal, 'yyyy-'+string(if( month(meninggal)=1,12, month(meninggal)-1),'00')+'-30')) , 30, 
if ( isdate ( string ( meninggal, 'yyyy-'+string(if( month(meninggal)=1,12, month(meninggal)-1),'00')+'-29')) , 29, 28 
)
)
)
, 0
) + ' Hr ' )
)
)


Nah silahkan copy paste jika diperlukan, semoga bermanfaat

*UPDATED : Script lama mengandung bug

0 comments on “Counting Age in Years, Months, Days FormatAdd yours →

  1. Above script shows
    0 Thn 1 Bln 2 Hr

    for dates
    28/02/2000 – 01/03/2000

    Any updated script ?

Tinggalkan Balasan

Translate ▲