time shorthand convertor

Jim Ault JimAultWins at yahoo.com
Thu Jul 27 14:23:05 CDT 2006


A different approach to get to the same point....
... added error checking for invalid time strings

ON convertTime
  put the text of the target into str
  
  repeat for each char CH in str
    if CH is a number then put CH after timeStr
  end repeat
  put " 00" after timeStr
  get char -4 to -3 of word 1 of timeStr & " " &  \
       char -2 to -1  of word 1 timeStr && word -1 of timeStr
  put word 1 to 2 of it into timeStr
  replace space with ":" in timeStr
  
  if str contains "a" then put " AM" after timeStr
  else put " PM" after timeStr
  --now let's error check --------------------------
  get timeStr
  convert it to seconds
  if it = timeStr then  --no conversion was done
    answer "oops.. "& str & " does not look like a time"
    exit to top
  else
    ---- looks good -----------------------------------------
    --so we will publish the result
    set the twelvehourtime to true
    convert it to short time
    put it into target
  end if
END convertTime



On 7/27/06 11:06 AM, "Josh Mellicker" <josh at dvcreators.net> wrote:

> Here is an interesting handler so that a user can enter a time in a
> field in a "shorthand" and get a full, properly formatted date out of
> it.
> 
> Here are some examples:
> 
> enter this = get this
> 
> 1 = 1:00 PM
> 12 = 12:00 PM
> 123 = 1:23 PM
> 1234 = 12:34 PM
> 
> add an "a" at the end for am, like:
> 
> 1a = 1:00 AM
> 
> We have been using this for a few days and everyone really likes it,
> it seems intuitive and faster than any other method of entering a time.
> 
> 
> 
> field script:
> 
>      ON enterInField
>          convertTime
>      END enterInField
> 
>      ON returnInField
>          convertTime
>      END returnInField
> 
>      ON closeField
>          convertTime
>      END closeField
> 
> 
> put this somewhere in the message path:
> 
>      ON convertTime
>          put the text of the target into t
>          IF (char -1 to -2 of t = "am") OR (char -1 of t = "a") THEN
>              put "AM" into ampm
>          ELSE
>              put "PM" into ampm
>          END IF
>          REPEAT for each char c in t
>              IF c is a number THEN put c after t2
>          END REPEAT
> 
>          SWITCH
>          CASE the number of chars of t2 < 3
>              put ":00" after t2
>              break
>          CASE the number of chars of t2 = 3
>              put char 1 of t2 & ":" & char 2 to 3 of t2 into t2
>              break
>          CASE the number of chars of t2 = 4
>              put char 1 to 2 of t2 & ":" & char 3 to 4 of t2 into t2
>              break
>          END SWITCH
>          put space & ampm after t2
>          put t2 into the target
>      END convertTime
> _______________________________________________
> use-revolution mailing list
> use-revolution at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-revolution





More information about the use-livecode mailing list