Hi William,

Devin answered already and although I haven't tested it, I believe his solution is the most straighforward one.

If you want a more general solution, you run into a bug, which causes Revolution to return times, which are one hour off. The bug is said to be fixed, as you can read here <http://quality.runrev.com/qacenter/ show_bug.cgi?id=2387> but date calculations are still far from straightforward in Revolution. Maybe we should re-open that bug report?

The following is an attempt to provide a function that calculates time differences regardless of platform. Unfortunately, it fails miserable on Windows, if time difference is less than an hour. Also, I am not sure what the effect of daytime savings is. In theory, it should work, but it doesn't. I didn't test this on Linux yet.

-- this script does not always work correctly!
function clockTimeDif theTime1,theTime2,theFormat
  set the useSystemDate to true
  if theFormat is empty then put "short time" into theFormat
  if not (theFormat contains "sec") then
    -- correct for rev bug
    put the time into myTime
    convert myTime to long internet time
    put char -2 to -1 of myTime into myZoneM
    put char -4 to -3 of myTime into myZoneH
    put myZoneM * 60 + myZoneH * 60^2 into myBug
    -- another bug in Windows? DST?
    if the platform is "Win32" then
      subtract 60^2 from myBug
    end if
  else put 0 into myBug
  -- convert and subtract
  convert theTime1 from short time to seconds
  convert theTime2 from short time to seconds
  put (theTime1 - theTime2 - myBug) into myDif
  -- convert
  do "convert myDif from seconds to" && theFormat
  -- done
  return myDif
end clockTimeDif


end clockTimeDif

Why can't we just convert time to seconds, do the calculation and convert back the result to a time format? Shouldn't this be simple?

Best regards,

Mark Schonewille

--

Economy-x-Talk Consulting and Software Engineering
http://economy-x-talk.com
http://www.salery.biz

Quickly extract data from your HyperCard stacks with DIFfersifier. http://differsifier.economy-x-talk.com


Op 20-sep-2007, om 20:16 heeft William de Smet het volgende geschreven:

Hi there all,

I am subtracting some numbers and that is working ok with the following code:
put value (field "xt" - field "y") into fld "z"

What If I want to use clock times like: 07.30 (seven thirty in the morning) ?
When I subract '16.00 - 07.30' I get '8.7' and I want it to be '08.30'
So now Rev sees these numbers as decimal numbers.

What code need I put in there to make it work?


greetings,

William de Smet


_______________________________________________
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