Kamis, 03 Februari 2011

Tanggal dan Waktu File

    Pada pascal terdapat suatu tipe variabel khusus untuk waktu dan tanggal file. Tapi variabel ini disebut dengan DateTime. Tipe variabel ini merupakan suatu record yang mempunyai 6 anggota, yaitu : Hour, Min, dan Sec untuk jam dan Day, Month, dan Year untuk tahun.
    Bila dijabarkan dalan type, DateTime mempunyai record sebagai berikut :
        Type
           DateTime = record
            Year, Month, Day, Hour, Min, Sec : Word;
           End;
    Type DateTime ini akan dipakai pada waktu mengambil dan menset waktu dan tanggal file. Untuk mengambil tanggal anda dapat menggunakan perintah GetTime dan untuk menset tanggal anda dapat menggunakan perintah SetTime.
    Tata penulisan GetTime dan SetTime adalah sebagai berikut :
        GetTime(N_Var,Waktu);
        SetTime(N_Var,Waktu);

dimana N_Var adalah suatu variabel file yang sudah di-assign. Tipe file tidak jadi masalah dalam N_Var ini. Waktu adalah waktu yang akan diambil dalam Longint. Waktu ini harus diproses lagi untuk mendapatkan waktu dan tanggal dalam bentuk tipe variabel DateTime.
    untuk mengubah variabel waktu yang  merupakan longint menjadi DateTime, anda dapat menggunakan perintah UnpackTime. Adapun tata cara penulisan UnpackTime adalah sebagai berikut :
        UnpackTime(Waktu,V_DateTime);
dimana waktu adalah variabel longint yang dihasilkan dari GetTime. V_DateTime merupakan variabel dengan tipe DateTime yang telah dibahas diatas.
    untuk membuat suatu variabel DateTime menjadi suatu variabel waktu supaya dapat diset, anda dapat menggunakan PackTime. Tata penulisan Packtime adalah sebagai berikut :
        PackTime(V_DateTime,Waktu);
dimana V_DateTime adalah variabel dengan tipe DateTime yang akn dijadikan variabel longint tempat menampung hasil proses.
    Perlu anda perhatikan, keempat perintah dan tipe variabel DateTime diatas hanya terdapat pada unit DOS atau WINDOS. Jadi bila anda ingin menggunakan perintah-perintah tersebut harus menggunakan perintah "Uses DOS;" atau "Uses WinDOS;". Khusus untuk PackTime jangkauan masing-masing field dari record tidak akan diperiksa, jadi bila anda memasukkan tanggal 32 pun akan diterima.
    Karena terdapat pada unit DOS, anda dapat mengecek apakah proses berlangsung dengan baik dengan menggunakan fungsi DOSError. Bila DOSError menghasilkan 0 berarti proses berlangsung dengan sukses tapi bila tidak menghasilkan 0 berarti terjadi kesalahan.

Contoh Program

program DateTime1;
Uses DOS, crt;
Var
 Dt    : DateTime;
 Wak    : Longint;
 Tipe   : File;
 Ch    : Char;
Begin
 Clrscr;
 Assign(Tipe,ParamStr(1));
 GetFTime(Tipe,Wak);
 UnpackTime(Wak,Dt);
 With Dt do
  begin
   Writeln('Tanggal File : ',Day,'-',Month,'-',Year);
   Writeln('Jam File : ',Hour,':',Min,':',Sec);
  End;
 
 Write ('Ubah Tanggal dan Jam [Y/T] ? ');
 repeat
  Ch := Upcase(readkey);
 until  Ch in ['Y','T'];

 if Ch = 'Y' then
  begin
   Writeln;
   Writeln ('Mengubah Tanggal dan Waktu File');
   Writeln;

   With Dt do
    Begin
     Write ('Masukkan Tanggal : ');
     Readln(Day);
     Write ('Masukkan Bulan : ');
     Readln(Month);
     Write ('Masukkan Tahun : ');
     Readln(Year);
     Write ('Masukkan Jam : ');
     Readln(Hour);
     write ('Masukkan Menit : ');
     Readln(Min);
     Write ('Masukkan Detik : ');
     Readln(Sec);
    End;

   PackTime(Dt, Wak);
   SetFTime(Tipe, Wak);
   
   if DOSError <> 0 then
    Writeln ('Waktu dan Tanggal Tidak Bisa Diset')
   Else
    Writeln ('Set Telah Dilakukan !');
 
  End;
  Readln;
end.

0 komentar:

Posting Komentar