Lingo Tutorial: Strings
READING: Manual pages of the commands described hereFile "worldtime.dir"
This tutorial discusses manipulation of strings to convert time.
on exitFrame calculateTime go to the frame end on calculateTime currentTime = the long time -- this gives you something like "6:05:11 PM" -- use it to set up the Boston time cast(5).text = currentTime -- figure out if it is AM or PM amORpm = word 2 of currentTime -- now figure out the hour part if the number of chars of currentTime = 10 then -- we are in single digit hours hour = integer(char 1 of currentTime) minsecs = char 2 to 7 of currentTime else -- there were 11 digits -- so we are in double digit hours hour = integer((char 1 of currentTime)&(char 2 of currentTime)) minsecs = char 3 to 8 of currentTime end if -- detailed way to set the exact hour+7 if hour > 0 and hour < 5 then athensHour = hour + 7 athensAmORpm = amORpm else if hour > 5 and hour < 12 then athensHour = hour - 5 if amORpm = "AM" then athensAmORpm = "PM" else athensAmORpm = "AM" end if else if hour = 5 then athensHour = 12 if amORpm = "AM" then athensAmORpm = "PM" else athensAmORpm = "AM" end if else -- if hour = 12 athensHour = 7 athensAmORpm = amORpm end if end if if athensHour <= 9 then athensTime = numToChar(48+ integer(athensHour))¬ & minsecs && athensAmORpm -- numToChar(48) is the character "0"
As an exercise, change the cascading if-statement to a case statement. This should clarigy the code a bit.
An interesting question that arizes is how do you test a script like this. You cannot just keep looking at it working for 24 hours to make sure every part works correctly. What would you do instead?
Maintained By: Takis Metaxas