Friday, October 16, 2015

Menampilkan Bulan dalam Tanggal

Saya akan berbagi tips kecil untuk menampilkan tanggal dalam format 21 Februari 2014 dalam visual Foxpro. Mungkin ada cara yang lebih singkat, tapi saya lebih senang membuat dengan cara saya sendiri.

Oke mari kita mulai.

Type data date (tanggal) tertulis 21/02/14 jika kita menganut sistem british (SET DATE BRIT) dan menghilangkan century (SET CENT OFF). seringkali orang lebih senang melihat nota kwitansi bertuliskan tanggal 21 Februari 2014 dalam format dan berbahasa indonesia, bukan 21 February 2014.

Ini adalah prosedur yang saya maksud,

LPARAMETERS dTgl 
nDate   = DAY(dTgl)
nMonth  = MONTH(dTgl)
nYear = YEAR(dTgl)
charbln = "JANUARI   FEBRUARI  MARET     APRIL     MEI       JUNI      JULI      AGUSTUS   SEPTEMBER OKTOBER   NOPEMBER  DESEMBER"
cNamaBulan = ALLTRIM(SUBSTR(charbln,(nMonth*10)-9,10))
IF !EMPTY(dTgl)
cTgl = ALLTRIM(STR(nDate))+' '+ALLTRIM(cNamaBulan)+' '+ALLTRIM(STR(nYear))
RETURN cTgl
ELSE 
RETURN {}
ENDIF

Simpan prosedur dengan nama getnmbulan, untuk mendeteksi kebenaran prosedurnya, panggil prosedur dari command window dengan perintah

?getnmbulan(DATE())

Karena saat saya tulis ini adalah tanggal 20/03/2014 maka hasilnya adalah,

20 MARET 2014

Gimana, Suka ?... Eits.. tunggu dulu, ada hal yang SANGAT PENTING yang harus diperhatikan dalam prosedur singkat tersebut.

PERHATIKAN:
charbln = "JANUARI   FEBRUARI  MARET     APRIL     MEI       JUNI      JULI      AGUSTUS   SEPTEMBER OKTOBER   NOPEMBER  DESEMBER"

Deretan nama bulan diatas, tidak sembarangan ditulis, tapi setiap nama bulan menempati 10 space (kotak yang disediakan), jika nama bulan kurang dari 10 karakter, untuk menuliskan bulan berikutnya harus dimulai pada kolom digit ke 11, hal ini dikarenakan untuk membaca bulan rangkaian karakter penyusun bulan digunakan formula di bawah ini,

cNamaBulan = ALLTRIM(SUBSTR(charbln,(nMonth*10)-9,10))

pasti semua ingat fungsi SUBSTRING kan ?.. variable nMonth adalah nomor bulan yang dimaksud dikalikan 10, karena digit yang disediakan untuk tiap bulan adalah 10 digit, dikurangi 9, adalah awal digit harus dibaca oleh fungsi SUBSTRING, sejauh 10 digit berikutnya.  Mudah kan ?

Mungkin sebagian yang lain menggunakan array untuk membuat prosedur yang sama, tapi kalau saya lebih suka ini, karena simple. Silahkan berkreasi..

No comments:

Post a Comment