For staters, you don't need to be using floats for hour, sec, min and this is where a lot of your issues will be starting.
If you avoid decimal multiplication / division, you will probably get results closer to what you want. e.g. 1.20 = 1 in int (I am referring to your hours).
After you calculate hours, you need to take this into account when calculating the minutes. After you get the minutes you need to take this & hours into account when you calculate the seconds.
Hope this helps...