In article <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org>,   
   dxf wrote:   
   >Is there an easier way of doing this? End goal is a double number   
   >representing centi-secs.   
   >   
   >   
   >empty decimal   
   >   
   >: SPLIT ( a u c -- a2 u2 a3 u3 ) >r 2dup r> scan 2swap 2 pick - ;   
   >: >INT ( adr len -- u ) 0 0 2swap >number 2drop drop ;   
   >   
   >: /T ( a u -- $hour $min $sec )   
   > 2 0 do [char] : split 2swap dup if 1 /string then loop   
   > 2 0 do dup 0= if 2rot 2rot then loop ;   
   >   
   >: .T 2swap 2rot cr >int . ." hr " >int . ." min " >int . ." sec " ;   
   >   
   >s" 1:2:3" /t .t   
   >s" 02:03" /t .t   
   >s" 03" /t .t   
   >s" 23:59:59" /t .t   
   >s" 0:00:03" /t .t   
      
   This problem is ill posed. You don't specify what happens   
   with less that 3 fields, or the meaning of the fields.   
   Normally I make the tests to run before attempting to code.   
      
   Groetjes Albert   
   --   
   Temu exploits Christians: (Disclaimer, only 10 apostles)   
   Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall   
   Art For Home, Office And Garden Decor - Perfect For Windows, Bars,   
   And Gifts For Friends Family And Colleagues.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|