home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / TURBOPM.ZIP / WHEN.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1985-11-01  |  2.0 KB  |  87 lines

  1.   Type
  2.     RegisterSet=Record Case Integer Of
  3.                   1: (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags: Integer);
  4.                   2: (AL,AH,BL,BH,CL,CH,DL,DH: Byte);
  5.                 End;
  6.     Time=Record
  7.            Hours,Min,Sec,Hundreths: Byte;
  8.          End;
  9.     DOW=(Sun,Mon,Tue,Wed,Thu,Fri,Sat);
  10.     Date=Record
  11.            Month,Day: Byte;
  12.            Year: Integer;
  13.            DayOfWeek: DOW;
  14.          End;
  15.     String2=String[2];
  16.  
  17.   Const
  18.     DayName: Array [DOW] Of String[9]=
  19.       ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday');
  20.     MonName: Array [1..12] Of String[9]=
  21.       ('January','February','March','April','May','June','July',
  22.        'August','September','October','November','December');
  23.  
  24.   Var
  25.     Regs: RegisterSet;
  26.  
  27.   Procedure GetTime(Var T:Time);
  28.  
  29.     Begin
  30.       With Regs,T Do
  31.        Begin
  32.         AH:=$2C;
  33.         MsDos(Regs);
  34.         Hours:=CH;
  35.         Min:=CL;
  36.         Sec:=DH;
  37.         Hundreths:=DL;
  38.        End;
  39.     End;
  40.  
  41.   Procedure GetDate(Var D:Date);
  42.  
  43.     Begin
  44.       With Regs,D Do
  45.        Begin
  46.         AH:=$2A;
  47.         MsDos(Regs);
  48.         Month:=DH;
  49.         Day:=DL;
  50.         Year:=CX;
  51.         DayOfWeek:=DOW(AL);
  52.        End;
  53.     End;
  54.  
  55.  Function V2(I:Integer):String2;
  56.     Begin
  57.       V2:=Chr(48+I Div 10)+Chr(48+I Mod 10);
  58.     End;
  59.  
  60.   Var
  61.     T1: Time;
  62.     D1: Date;
  63.     AP: String2;
  64.  
  65.   Begin
  66.     GetTime(T1);
  67.     GetDate(D1);
  68.     AP:='am';
  69.     With T1 Do
  70.      Begin
  71.       If Hours>11 Then AP:='pm';
  72.       Hours:=Hours Mod 12;
  73.       If Hours=0 Then Hours:=12;
  74.       Write(V2(Hours),':',V2(Min),':',V2(Sec),'.',V2(Hundreths),AP);
  75.      End;
  76.     With D1 Do WriteLn('  ',DayName[DayOfWeek],', ',MonName[Month],' ',
  77.                        V2(Day),', ',Year);
  78.   End.
  79. Dos(Regs);
  80.         Hours:=CH;
  81.         Min:=CL;
  82.         Sec:=DH;
  83.         Hundreths:=DL;
  84.        End;
  85.     End;
  86.  
  87.   Procedure