formatting times for the user

Jon jbondy at sover.net
Sat Jun 4 14:13:52 EDT 2005


Ken:

Thanks.  I came up with these on my own.  Good enough for now.

:)

Jon

function timeToStr pTime  -- mm:ss.hh
  local m, s
  divide pTime by the timeScale of player "myPlayer"
  put pTime div 60 into m
  put pTime mod 60 into pTime
  put format("%2.0f:%2.2f", m, pTime) into pTime
  return pTime 
end timeToStr

function StrToTime pTime  -- assumes same format as TimeToStr
  local mStr, sStr
  put char 1 to 2 of pTime into mStr
  put char 4 to 8 of pTime into sStr
  return ((mStr * 60) + sStr) * the timeScale of player "myPlayer"
end StrToTime





Ken Ray wrote:

>>Are there any simple ways to take times (like Player currentPositions or
>>Durations) and format them for the user so that they look like
>>"h:mm:ss.hh"?  I looked in the help for Format, but no joy.
>>    
>>
>
>You can use my handy-dandy 'stsConvertTime' function (watch for line wraps);
>since I think the currentPosition/durations are in milliseconds, you can do
>this:
>
>on mouseUp
>  put the duration of player 1 into tDur
>  put stsConvertTime(tDur,"MS","HH:MM:SS.MS") into tResult
>  answer tResult
>end mouseUp
>
>function stsConvertTime pValue,pInFormat,pOutFormat
>  -- First, convert incoming value to milliseconds
>  if isNumber(pValue) is false then
>    return "Error: Incoming value is not a real number."
>    exit stsConvertTime
>  end if
>  
>  if pInFormat = "" then put "MS" into pInFormat
>  if pOutFormat = "" then put "HH:MM:SS.MS" into pOutFormat
>  
>  switch pInFormat
>  case "H"
>    put (pValue*60*60*1000) into pMS
>    break
>  case "M"
>    put (pValue*60*1000) into pMS
>    break
>  case "S"
>    put (pValue*1000) into pMS
>    break
>  case "T"
>    put (pValue/60)*1000 into pMS
>    break
>  case "MS"
>    put pValue into pMS
>    break
>  end switch
>  put 0 into tSecs
>  put 0 into tMins
>  put 0 into tHrs
>  put pMS div 1000 into tSecs
>  put pMS mod 1000 into tMS
>  put tMS into tVal
>  if tSecs <> 0 then
>    put tSecs div 60 into tMins
>    put tSecs mod 60 into tSecs
>    if tMins <> 0 then
>      put tMins div 60 into tHrs
>      put tMins mod 60 into tMins
>    end if
>  end if
>  -- No format return value
>  if "MS" is in pOutFormat then replace "MS" with tMS in pOutFormat
>  if "HH" is in pOutFormat then replace "HH" with _PadZero(tHrs) in
>pOutFormat
>  if "H" is in pOutFormat then replace "H" with tHrs in pOutFormat
>  if "MM" is in pOutFormat then replace "MM" with _PadZero(tMins) in
>pOutFormat
>  if "M" is in pOutFormat then replace "M" with tMins in pOutFormat
>  if "MM" is in pOutFormat then replace "MM" with _PadZero(tMins) in
>pOutFormat
>  if "M" is in pOutFormat then replace "M" with tMins in pOutFormat
>  if "SS" is in pOutFormat then replace "SS" with _PadZero(tSecs) in
>pOutFormat
>  if "S" is in pOutFormat then replace "S" with tSecs in pOutFormat
>  return pOutFormat
>end stsConvertTime
>
>function _PadZero pVal
>  if pVal < 10 then return "0" & pVal
>  else return pVal
>end _PadZero 
>
>Have fun!
>
>
>Ken Ray
>Sons of Thunder Software
>Email: kray at sonsothunder.com
>Web Site: http://www.sonsothunder.com/
>
>
>
>_______________________________________________
>use-revolution mailing list
>use-revolution at lists.runrev.com
>http://lists.runrev.com/mailman/listinfo/use-revolution
>
>
>  
>


More information about the use-livecode mailing list