home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / PROLST.ZIP / SDTTM.INC < prev   
Encoding:
Text File  |  1986-11-02  |  1.5 KB  |  64 lines

  1. (* Functions to return strings of Current System Time and Date *)
  2.  
  3. type
  4.   String16  =      String[16];
  5.   String24  =      String[24];
  6.  
  7. function SDate: string24;
  8. const
  9.    wday: array[0..6] of string[8] =
  10.    ('Sunday','Monday','Tuesday','Wedesday','Thursday','Friday','Saturday');
  11.    mon: array[1..12] of string[4] =
  12.    ('Jan.','Feb.','Mar.','Apr.','May.','Jun.','Jul.','Aug.','Sep.',
  13.      'Oct.','Nov.','Dec.');
  14. var
  15.   regs: record
  16.         case integer of
  17.             1: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Integer);
  18.             2: (AL, AH, BL, BH, CL, CH, DL, DH: Byte)
  19.         end;
  20.   Dy,Yr : string16;
  21.  
  22. begin
  23.   regs.AX := $2A00;             {DOS function to get system date}
  24.   MsDos(regs);
  25.   Str(regs.CX:4, Yr);
  26.   if (regs.DL <10)
  27.      then str(regs.DL:1,dy)
  28.      else str(regs.DL:2,dy);
  29.  
  30.   SDate := wday[regs.AL] + ' ' + Mon[regs.DH] + ' ' + Dy + ', ' + Yr;
  31.  
  32. end; {SDate}
  33.  
  34.  
  35. function STime: string16;
  36.  
  37. var
  38.   regs: record
  39.           case Integer of
  40.             1: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Integer);
  41.             2: (AL, AH, BL, BH, CL, CH, DL, DH: Byte)
  42.         end;
  43.  
  44.   Hr,Min,Sec: String16;
  45.  
  46. Begin
  47.  
  48.   regs.AX := $2C00;             {DOS function to get system time }
  49.   MsDos(regs);
  50.   Str(regs.CH:2, Hr);
  51.   Str(regs.CL:2, Min);
  52.   str(regs.DH:2,Sec);
  53.   If   Min[1] = ' '
  54.     then Min[1] := '0';
  55.   if   Hr[1] = ' '
  56.     then Hr[1] := '0';
  57.   if   Sec[1] = ' '
  58.     then Sec[1] := '0';
  59.  
  60.   STime := Hr + ':' + Min + '.' + Sec;
  61.  
  62. end; {STime}
  63.  
  64.