home *** CD-ROM | disk | FTP | other *** search
- (* Chapter 14 - Program 8 *)
- program Get_Time_And_Date;
-
- var Year,Month,Day : integer;
- Hour,Minute,Second : integer;
-
- (* The following procedure can be included in any MSDOS/PCDOS
- program to get the present date and time. The present date
- and time can then be printed on your output to automatically
- time and date your output listings. Note that this is a TURBO
- Pascal extension and will probably not work with other Pascal
- compilers. This program uses some very advanced programming
- techniques requiring knowledge of some of the details of the
- DOS system. Don't worry if you don't understand all of this.
- *)
-
- procedure Time_And_Date(var Year,Month,Day,Hour,Min,Sec : integer);
-
- type Reg_Definitions = record
- AX,BX,CX,DX,BP,SI,DI,DS,ES,FLAGS : integer;
- end;
-
- var Registers : Reg_Definitions;
-
- begin
- Registers.AX := $2A shl 8; (* get todays date *)
- Msdos(Registers);
- Year := Registers.CX;
- Day := Registers.DX mod 256;
- Month := Registers.DX shr 8;
-
- Registers.AX := $2C shl 8; (* get the time *)
- Msdos(Registers);
- Hour := Registers.CX shr 8;
- Min := Registers.CX mod 256;
- Sec := Registers.DX shr 8;
- end;
-
- begin
- Time_And_Date(Year,Month,Day,Hour,Minute,Second);
- Writeln('The date is ',Month:2,'/',Day:2,'/',Year);
- Writeln('The time is ',Hour:2,':',Minute:2,':',Second:2);
- end.