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