Contributor: CARLOS BEGUIGNE {Created by Carlos Beguinge, Sept 12, 1993} {Program to get the systems date using [GetDate] and allowing you to change the date using [SetDate]. Feel free to incorporated into any other code, and change it as you wish... Enjoy.} {P.S. Any changes made to make this code better please post it back to me outlining the changes, Thank you.} uses Dos, Crt; const days : array [0..6] of String[9] = {Array of Weekdays set here} ('Sunday','Monday','Tuesday', 'Wednesday','Thursday','Friday', 'Saturday'); var y, m, d, dow, I, Code : Word; {Setting the variables here} changedt, cch : Char; flagd, flagm, flagy : boolean; ch : String; procedure start(Code: Word); Forward; {To allow to go forward in a } {procedure. Used for Error } {Checking. } procedure compute; {Called from procedure Start } begin {Moves the numeric string to } Val(ch, I, Code); {numeric value. then checks } if code <> 0 then {for errors. if error true } begin {then Call procedure Start } clrscr; Writeln('Error in Date Statement', 'Press any key to Start Again '); readln; start(Code); end; {Else Process Month, Day, and} if (flagm = false) then {Year. } begin m := I; flagm := true; write(cch); cch :=#0; end; if (flagd = false) and (cch > #0) then begin d := I; flagd := true; write(cch); cch :=#0; end; if (flagy = false) and ( cch > #0) then begin y := I; flagy := true; cch :=#13; end; ch := ''; end; procedure ResetVars; {Called from procedure Start } begin {Resets all variable. } clrscr; Code :=0; d :=0; m :=0; y :=0; flagd := false; flagm := false; flagy := false; ch :=''; cch := #0; end; procedure start; {Called from Main Program } begin ResetVars; {Calls procedure ResetFields } while (cch <> #13) do {Gets input from the keyboard} begin {until a "/" or "Enter is } cch := readkey; {pressed. } while (cch <> #47) and (cch <> #13) do begin ch := ch + cch; {Adds the each numeric charac} write(cch); {ter to the string variable } cch := readkey; end; compute; {Calls procedure Compute } end; end; begin {Main Program which calls } clrscr; {procedure Start } GetDate(y,m,d,dow); Writeln('Today is ', days[dow],', ', m:0, '/', d:0, '/', y:0); Writeln; Write('Would you like to change this Date? '); readln(changedt); if upcase(changedt) ='Y' then begin start(Code); clrscr; SetDate(y,m,d); {Sets the Date if Changed } Writeln('Today is ', days[dow],', ', m:0, '/', d:0, '/', y:0); readln; end else begin {Date remains unchanged } Writeln('Today'#39's date Was NOT changed '); Writeln('Today is ', days[dow],', ', m:0, '/', d:0, '/', y:0); readln; end; end.