Murga-Projects Forums

Full Version: converting seconds to %H:%M:%S
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Maybe this has already been asked? I don't recall.
It seems like there's something wrong here...when I attempt to use to convert seconds into hours:minutes:seconds, the minutes and seconds work, but hours always displays 19 instead of 00.

The first button gets the current Posix time string.
The second button gets a new time string (assuming you paused after clicking the first button), subtracts the first time string from that, and then is supposed to convert the difference into %T format (a.k.a. %H:%M:%S). That conversion is where my problem looks like this should have been easy.

#!/usr/bin/env murgaLua

win = fltk:Fl_Window(400, 300, ", os.time()")

start_button = fltk:Fl_Button(10, 10, 200, 25, "start")
starttime_display = fltk:Fl_Box(220, 10, 200, 25, "start time")
    starttime = os.time()
    endtime_display:label("end time")

end_button = fltk:Fl_Button(10, 40, 200, 25, "stop")
endtime_display = fltk:Fl_Box(220, 40, 200, 25, "end time")
    endtime = os.time()
    elapsed = endtime - starttime
    elapsed_display:label("%T", elapsed))
--    elapsed_display:label("%H:%M:%S", elapsed))

elapsed_display = fltk:Fl_Box(220, 80, 200, 200, "time elapsed")


Trying to be better at using whitespace...even though it adds a few bytes, it's easier to read =o)

Apparently the function doesn't do what I thought it did. I found this function posted on a message board:

function SecondsToClock(sSeconds)
local nSeconds = tonumber(sSeconds)
if nSeconds == 0 then
return "00:00:00";
nHours = string.format("%02.f", math.floor(nSeconds/3600));
nMins = string.format("%02.f", math.floor(nSeconds/60 - (nHours*60)));
nSecs = string.format("%02.f", math.floor(nSeconds - nHours*3600 - nMins *60));
return nHours..":"..nMins..":"..nSecs

Reference URL's