Kusnassriyanto

Just another WordPress.com weblog

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 , ,

One Response

Subscribe to comments with RSS.

  1. [...] Sumber: kusnassriyanto.wordpress.com [...]


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.