Wow, thanks Jim, a nice improvement!

On Jul 27, 2006, at 12:23 PM, Jim Ault wrote:

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" <[EMAIL PROTECTED]> 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
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution


_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to