Math problem

Paul Dupuis paul at researchware.com
Fri Feb 17 17:03:15 EST 2012


Well Bob, here is one more:

-- countTheHour with NO IF statements, proper rounding, and a single
calculation line
-- pIncrement is in seconds, so 900 equals 15 minutes increments. The
default (by the max function) is 1 minute (60 seconds)
-- 1 second in 1 hour is 1/3600 or 0.000278, so the roundUp adjustment
only needs 4 decimal places of precision i.e. 0.4999

FUNCTION countTheHours pStartTime, pEndTime, pIncrement
  TRY
    convert pStartTime to seconds
    convert pEndTime to seconds
    put ( round(((pEndTime-pStartTime)/ max(pIncrement,60))+0.4999,0) /
(3600/max(pIncrement,60)) ) into theResult
  CATCH theError
    put "ERROR: Not a valid time!" into theResult
  END TRY
  return theResult
END countTheHours


On 2/17/2012 4:21 PM, Bob Sneidar wrote:
> Thanks all. Some ingenious ways of going about it. Never ceases to amaze me when I see all the ways of doing something when I thought there was only 1. :-)
>
> Bob
>
>
> On Feb 17, 2012, at 11:49 AM, Peter M. Brigham, MD wrote:
>
>> On Feb 17, 2012, at 12:20 PM, Geoff Canyon Rev wrote:
>>
>>> function roundUp x,i -- rounds x up to the next i
>>>  return ((x - .00001) div i + 1) * i
>>> end roundUp
>> Works except for values like 4.000000001.
>>
>> Try this instead. It's a sort of a trick to avoid using a conditional construction, though the logic is conditional in structure, but does it in one line. I couldn't find a way of doing it using just LC's math functions, maybe someone else can.
>>
>> function roundUp x
>>   return trunc(x) + char itemoffset((x mod 1 > 0),"true,false") of "10"
>> end roundUp
>>
>> -- Peter
>>
>> Peter M. Brigham
>> pmbrig at gmail.com
>> http://home.comcast.net/~pmbrig
>>
>>
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>

-- 
Paul Dupuis
Cofounder
Researchware, Inc.
http://www.researchware.com/
http://www.twitter.com/researchware
http://www.facebook.com/researchware
http://www.linkedin.com/company/researchware-inc





More information about the use-livecode mailing list