Pernah tau istilah pasaran? biasanya sih orang Jawa yang sering menggunakannya. Kata pasaran berasal dari kata pasar, yang artinya ... pasar? aku juga gak terlalu paham, meski aku jawa tulen.
Yang pasti, orang jawa memiliki penamaan hari yang lebih lengkap. Selain penamaan universal (istilah kami yaitu Nasional, untuk Senin, selasa, etc), orang jawa juga menambahkan nama lain (extended) yang akan berulang setiap 5 hari sekali, yaitu Pahing, Pon, Wage, Kliwon dan Legi.
Penamaan itu sudah paten (minimal di daerahku), yaitu jika seseorang menyatakan suatu nama hari, maka serasa belum lengkap kalo tidak ada nama pasarannya. Misalnya kalimat, 'arep ono tanggapan wayang sesuk dino Senin Legi'.
Selain sebagai pelengkap kalender, penentuan pasaran juga mempengaruhi nilai
dari hari itu sendiri. Misalnya, orang yang lahir hari Sabtu Legi, memiliki
karakteristik sifat lebih baik dibanding orang yang lahir hari Sabtu Wage.
Kalau sudah menyangkut
hal ini, maka diluar pembahasan kali ini, mungkin di pembahasan berikutnya :-)
Pembahasan kali ini, yaitu tentang bagaimana menentukan nama hari dan nama pasaran dari suatu tanggal.
Saya sudah lama menemukan rumus ini (nemu dalam artian mencari di literatur dan ketemu, tidak membuat rumus sendiri). Saking lamanya sampai saya lupa di mana nemunya. Makasih banget udah ngasih rumus ini.
Untuk mencari nama hari, cukup pake fungsi yang disediakan VB, yaitu Weekday(tanggal)
Function NamaHari(ByVal Tgl As Date) As String NamaHari = Choose(Weekday(Tgl), _ "Minggu", "Senin", "Selasa", _ "Rabu", "Kamis", "Jum'at", "Sabtu") End FunctionWeekday akan mengembalikan nilai integer, kalo 1 berarti minggu, dst.
Nah, di bawah ini baru rumus kita :-)
Function NamaPasaran(ByVal Tgl As Date) As String Dim l Dim s Dim InitialDate As Date InitialDate = DateValue("02/01/1970") l = DateDiff("s", InitialDate, Tgl) * 1000 s = l + 86400000 s = s / 432000000 s = Round((s - Int(s)) * 10) / 2 l = Abs(Round(s)) If l > 4 Then l = 0 NamaPasaran = Choose(l + 1, _ "Wage", "Kliwon", "Legi", _ "Pahing", "Pon") End Function
Itu rumusnya. Dulu aku dapatkan dalam primbon, di perpustakaan di Kendari,
Sulawesi Tenggara. Hei, ternyata aku ingat.
Inti dari rumus tersebut adalah, dicari selisih jumlah milisecond antara
tanggal yang dicari dengan tanggal 2 Januari 1970!
Lalu dihitung jumlah selisihnya sesuai rumus di atas. Nilai variabel 'l' adalah index antara 0 sampai 4. 0 berarti Wage, dst.
Setelah fungsinya selesai, kita panggil fungsi tersebut secara bersamaan, misalnya begini:
txtHari = NamaHari(Now) + " " + NamaPasaran(Now)
Maka variabel txtHari akan berisi nama hari dan nama pasaran saat ini.
That is it. Kalo mau buktikan kebenarannya, silakan cocokkan dengan kalender
:-)
Selama aku pakai, masih cocok terus tuh, tapi saya juga ndak menjamin kebenarannya lho...
Yang jelas benar adalah, hari kemerdekaan kita, 17 Agustus 1945, adalah hari
Jum'at ... Kliwon? lupa aku. Silakan cari sendiri deh :-)
Untuk sourcenya, silakan download Pasaran.zip.
(Aryo Sanjaya)
Sigit,
Wah, kalo pake PHP, ya ga mungkin di-view source. Kan sourcenya ada di server.
Tapi mungkin saja ada keterangan mengenai mekanisme atau algoritma pencariannya, ok?
Wah, makasih Edy, udah merepotkan :D
Belum aku coba sih, tapi kalo itu adalah porting dari versi VB, kayaknya belum valid deh :(
Karena aku sendiri ga yakin dengan yang versi VB itu.
Aku yakin valid dengan rumus yang ada di artikel ini:
http://www.bengkelprogram.com/data-artikel-244.bps
Kalo itu udah aku test kevalidannya.
Mau porting dari Java menjadi Delphi juga :D
tolong keterangan per line listing programnya dong!baru mau coba bikin program VB!orang yang suka bantu sesama berpeluang besar masuk surga lho!he3x!
nambah ini mas.. bagi programer delphi
Function TForm1.pasaran(tgl:variant):string;
const pasar: array[0..4] of string=('Kliwon','Legi','Pahing','Pon','Wage');//pasaran jawa
const nilpasar: array[0..4] of string=('8','5','9','7','4'); // nilai pasaran
const nilhari: array[0..6] of string=('5','4','3','7','8','6','9');// nilai hari dimulai minggusampai sabtu
var
n: integer;
t: string;
hasil,sisa:variant;
begin
hasil:=tgl;
sisa:=hasil mod 5;
t:=floattostr(sisa);
n:=strtoint(t);
result:=pasar[n];
end;
selamat mencoba
fungsi pasaran(tgl:variant):string;
cara panggilnya
misal :
label1.caption:=pasaran(date());
fungsi pasaran(tgl:variant):string;
cara panggilnya
misal :
label1.caption:=pasaran(date());
Wah, makasih Edy, udah merepotkan :D
Belum aku coba sih, tapi kalo itu adalah porting dari versi VB, kayaknya belum valid deh :(
Karena aku sendiri ga yakin dengan yang versi VB itu.
Aku yakin valid dengan rumus yang ada di artikel ini:
http://www.bengkelprogram.com/data-artikel-244.bps
Kalo itu udah aku test kevalidannya.
Mau porting dari Java menjadi Delphi juga :D
ada rumusnya nggak nyari tgl,bulan, thn Masehi ke tgl, bln, thn Hijriah? tolong deh. tx u
» Memecah Komponen Warna (10)Source-code SMS AR dalam Visual Basic
» Merubah Status Yahoo! Messenger (4)Untuk para desainer di komputer, penentuan komponen warna sangatlah berpengaruh pada hasil desain
» Main-main dengan ARP (4)Bagi yang sering memanfaatkan IM (Instant Messenger) ini, kemungkinan besar sering memanfaatkan fasilitas status dan availibilty.
» Buka File MDB (24)Pernah denger ARP? tentu saja sering, jika anda seorang networker sejati :-)
Aplikasi kecil untuk melihat isi MDB. Usefull when you need to open MDB file but MS-Access is not present. :)