i have this code, but it doesnt seem to work out time difference correctly
when changing values in line initialTime=“18:40:00”
can somebody please help
function GetTimeDifference(intialTime,finalTime)
initialHour=tonumber(string.sub(intialTime,1,2)) *3600
initialMinute=tonumber(string.sub(intialTime,4,5))*60
initialSecond=tonumber(string.sub(intialTime,7,8))
finalHour=tonumber(string.sub(finalTime,1,2))*3600
finalMinute=tonumber(string.sub(finalTime,4,5))*60
finalSecond=tonumber(string.sub(finalTime,7,8))
totalInitialTime=initialHour+initialMinute+initialSecond
totalFinalTime=finalHour+finalMinute+finalSecond
local duration=totalFinalTime-totalInitialTime
formatedDuration=“00:00:00”
if(duration<10) then
formatedDuration=“00:00:0”…duration
elseif(duration>9 and duration<60) then
formatedDuration=“00:00:”…duration
elseif(duration>59 and duration<=3600 ) then
--minutes handler
intermediateCalc=(duration/60)
i,j=string.find(tostring(intermediateCalc),".")
if(i==nil and j==nil) then
formatedDuration=“00:0”…intermediateCalc
else
min=string.sub(tostring(intermediateCalc),i,j)
if(tonumber(min)<10) then
formatedDuration=“00:0”…min
else
formatedDuration=“00:”…min
end
end
newSeconds=duration%60
if(newSeconds<10) then
formatedDuration=formatedDuration…":0"
…newSeconds
else
formatedDuration=formatedDuration…":"
…newSeconds
end
else
--hour handler
newMinutes=(finalMinute-initialMinute)/60
if(newMinutes<0) then
newMinutes=newMinutes*-1
end
if(newMinutes<10) then
newMinutes=“0”…newMinutes
end
newSeconds=(finalSecond-initialSecond)
if(newSeconds<0) then
newSeconds=newSeconds*-1
end
if(newSeconds<10) then
newSeconds=“0”…newSeconds
end
formatedDuration=(finalHour-initialHour)/3600
…":"…newMinutes…":"…newSeconds
end
return formatedDuration
end
initialTime=“18:40:00”
finalTime=os.date("%H:%M:%S")
print("")
print (“The Initial Time is “…initialTime)
print(””)
print (“The Current Time is “…finalTime)
print(””)
duration=GetTimeDifference(initialTime,finalTime)
print (“The Time Difference is “…duration)
print(””)