[Back to DATETIME SWAG index] [Back to Main SWAG index] [Original]

    { PW>question, I want to declare Type Time as (Hour,Min).  Where hour and
     PW>minute are predeifed Types 0..23 and 0..59 respectively.  I then take
     PW>the Type Time and use it as a field in a Record.  How would I promt a
     PW>user to enter the time?  Ie. Enter (date,min): ???  Is there a way to do
     PW>this without reading a String and then Formatting it and changing it to
     PW>Integers?
    }
       It can be done, but it's probably not worth the efFort to process it that
    way. I do this a lot, and I allow entering the Time as hh:mm or hhmm, where
    it's simply a String.  then, I parse out the ":", if it exists, and do a couple
    of divide and mod operations to then convert it to seconds - and store it that
    way.  I also have a routine which will Format seconds into time.  I do this
    enough (I'm in the race timing business), that I've found it easy to do this
    throughout my system - and keep all data in seconds.  I have a
    parsing/conversion routine and a conversion/display routine in my global Unit.
    Something like this:

    Var S     : String;
        I,T,N : Word;

      Write ('Enter Time as hh:mm '); readln (S);
      if Pos(':',S) > 0 then Delete (S,Pos(':',S),1); Val (S,I,N);
      T := ((I div 100) * 3600) + ((I mod 100) * 60);

       There should be some error-checking in this, but I'm sure you can figure it
    out...

[Back to DATETIME SWAG index] [Back to Main SWAG index] [Original]