On 28 August 2012 16:40, sameena Khan <[email protected]> wrote: > @colin if i have two timings9:30 PM and 10:52 i got correct output here it > is 10 hours : 38mins > and if i give Time.now as one input and 10:30 AM as another input i got 2 > hours : mins
The best thing is to put in some diagnostic code and work out what is happening. Remember Time.now is not a time of day it is a date and time. Hopefully your other times are also full date and time objects. Colin > > > i dont think it is timezone issue because if there are two fixed inputs and > if i subtract them with my code i get the correct output the only issue is > with Time.now as a input i guess. i wanna calculate the working hours with > mins of an employee. As i explained before if the employee checkin and > checkout time is there i can able to calculate it and if i wanna show right > from his checkin until he checkout every min of his working hours and mins i > have to go for Time.now as another input. > > On Tue, Aug 28, 2012 at 8:05 PM, Colin Law <[email protected]> wrote: >> >> On 28 August 2012 15:18, Khan <[email protected]> wrote: >> > Hey everyone >> > >> > i am trying to subtract two different times.i am getting >> > right >> > when i have two fixed times. >> > here is my code >> > >> > >> > def hour_min(last,first) >> > >> > difference = last - first >> > seconds = difference % 60 >> > difference = (difference - seconds) / 60 >> > minutes = difference % 60 >> > difference = (difference - minutes) / 60 >> > hours = difference % 24 >> > >> > return hours,minutes >> > >> > end >> > if last =9:30 PM and first = 10:52 i get after subtraction 10 hours : 38 >> > mins but the problem is with Time.now >> > if last = Time.now and first = 10:30 am it is give improper output >> > >> > >> > >> > this is my view >> > <% hour_min = hour_min(Time.now.to_i,cin.first.to_i)%> >> >> You should not need to call to_i, just pass in the times, the >> difference of two times is the difference in seconds. > > > If i don't call with to_i the output will be with decimal(i.e., 3.o hours ) > to convert them i went with to_i >> >> >> > <%="#{hour_min[0]}Hour : #{hour_min[1]}Min"%> >> > >> > My problem is if i have two fixed timings i am getting correct but when >> > i >> > have to calculate with Time.now i am getting wrong answer can any one >> > help >> > me out >> >> Have a look at the Rails Guide on debugging which will show you >> techniques that can be used to debug the code. I would start just by >> running the console (rails c) and try calling your method with various >> values and see what happens. You can use puts in the method to print >> intermediate results and see what is happening. >> >> What results are you getting? Is it a number of hours out? If so >> then I guess it is a time zone issue. >> >> Colin >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Ruby on Rails: Talk" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

