Kusnassriyanto

Just another WordPress.com weblog

Archive for February 2010

TDateTime, tipe data tanggal dan waktu di Delphi

with one comment

Kalo saya cermati, secara periodik di milis Delphi lokal selalu muncul pertanyaan tentang bagaimana menghitung selisih hari dari tanggal1 ke tanggal2.
Sebenarnya bekerja dengan tanggal sangat mudah. TDateTime, tipe data tanggal dan waktu di Delphi adalah bilangan real, dimana bagian integernya adalah jumlah hari, sedangkan nilai pecahannya adalah waktu. Angka dalam tanggal mewakili berapa hari sejak tanggal 30 Des 1899.
Bila kita ingin menghitung selisih dua buah tanggal dalam satuan hari, ya tinggal kurangkan saja.
Misalkan variabel Tgl1, Tgl2, dan selisih adalah tipe TDateTime dan Tgl1 dan Tgl2 sudah terisi, maka untuk menghitung selisih waktu adalah sebagai berikut

  selisih := Tgl1-Tgl2;


Karena TDateTime adalah bilangan real, maka fungsi-fungsi yang bekerja terhadap bilangan real juga dapat bekerja terhadap variabel tipe ini. Misalnya fungsi Trunc, untuk mengambil nilai integer dari suatu bilangan real dapat bekerja terhadap TDateTime untuk mengambil hanya tanggalnya saja.
Demikian juga bila kita ingin membuang tanggalnya dan hanya mengambil waktunya saja, kita bisa menggunakan fungsi Fract yang sudah tersedia di Delphi.
Contoh lainnya misalnya function Round juga dapat digunakan untuk membulatkan hari. Sebelum jam 12 siang akan ikut hari ini dan setelah jam 12 siang akan ikut besok.

Menginisialisasi variabel TDateTime dengan nilai jam sangatlah mudah. Malah tanpa perlu menggunakan function apapun.

// variabel X diisi dengan 1 jam
  X := 1/24;
// variabel X diisi dengan 11 jam
  X := 11/24;
// variabel X diisi dengan 15 menit (atau 1/4 jam)
  X := 1/(4*24);
// variabel X diisi dengan 1 menit
  X := 1/(24*60);


Delphi sendiri juga menyediakan banyak sekali fungsi terkait DateTime, yang di Delphi Help bisa dicari dengan kata kunci Datetime routines.

Written by kusnassriyanto

February 23, 2010 at 2:56 am

Posted in Uncategorized

Tagged with , ,

Konversi dari jam (number) menjadi format hh:mm:ss di Oracle

with 6 comments

Hari ini lagi bikin report pake tools bikinan sendiri dan dengan database oracle.
Salah satu yang dibutuhkan adalah menampilkan data jam menjadi format hh:mm:ss. Misalnya 7.5 jam harus ditampilkan menjadi 07:30:00 atau bisa juga 7 jam 30 min 0 det. Karena satu dan lain hal, saya pengen formatingnya dilakukan di level perintah SQL. Feeling saya sih bilang harusnya gak susah.
Nanya ke mbah Google belum ketemu cara yang cukup mudah. Merenung sebentar kemudian googling dikit, akhirnya ketemu :


select to_char(trunc(current_date)+10.5/24, 'hh24:mi:ss')
  from dual;

Perhatikan angka 10.5 adalah jam yang ingin dikonversi.

hasilnya adalah 10:30:00

Cara bekerjanya seperti ini : Read the rest of this entry »

Written by kusnassriyanto

February 2, 2010 at 10:11 am

Posted in Uncategorized

Tagged with , ,

Follow

Get every new post delivered to your Inbox.