Friday, April 18, 2008

hari ke -? dalam setaun

#!/bin/bash
#shell script untuk menghitung hari.dengan format tanggal dd-mm-yyyy.untuk format bulan saya buat langsung
#angka untuk mempermudah shg tidak mapping.
echo "masukkan tanggal (dd-mm-yyyy) ?"
read tanggal

hari()
{
hari=`echo $tanggal|cut -f1 -d'-'`

}

hitung_bulan()
{
bulan=`echo $tanggal|cut -f2 -d'-'`
bulan_lalu=bulan_`expr $bulan - 1`

case "$bulan_lalu" in
bulan_0)
jumlah_hari=0;;
bulan_1)
jumlah_hari=31;; #31 hari
bulan_2)
jumlah_hari=59;; #28 hari
bulan_3)
jumlah_hari=90;; #31
bulan_4)
jumlah_hari=120;; #30
bulan_5)
jumlah_hari=151;; #31
bulan_6)
jumlah_hari=181;; #30
bulan_7)
jumlah_hari=212;; #31
bulan_8)
jumlah_hari=243;; #31
bulan_9)
jumlah_hari=273;; #30
bulan_10)
jumlah_hari=304;; #31
bulan_11)
jumlah_hari=334;; #30
esac

}

hitung_tahun()
{
tahun=`echo $tanggal|cut -f3 -d'-'`
if [ `expr $tahun % 4` -eq 0 ]; then
if [ `expr $tahun % 400` -eq 0 ]; then
kabisat=1
elif [ `expr $tahun % 100` -eq 0 ]; then
kabisat=0
else
kabisat=1
fi
else
kabisat=0
fi

}

main()
{
hari
hitung_bulan
hitung_tahun
total_hari=`expr $hari + $jumlah_hari`
if [ "$kabisat" = "1" ];then total_hari=`expr $total_hari + $kabisat`; fi
}

main
echo "tanggal $hari-$bulan-$tahun adalah urutan ke : $total_hari tahun itu"

0 Comment :