I just ran into this very same issue as I was requested to capture the average bedtime and average wake-time for participants and then calculate the time in between. I ended up creating hidden fields to convert the times to decimal values as follows:
bedtime
@CALCTEXT( (left([typical_bedtime],2)*1.0) + ((right([typical_bedtime],2)*1.0)/60.0))
waketime
@CALCTEXT( (left([typical_waketime],2)*1.0) + ((right([typical_waketime],2)*1.0)/60.0))
The next challenging thing was that the average bedtime could be after midnight, so to calculate the time between these two times I used the formula:
sleep_time
@CALCTEXT(if([bedtime]*1.0>[waketime]*1.0, (24.0-[bedtime]*1.0) + [waketime]*1.0, [waketime]*1.0 - [bedtime]*1.0))
To convert this back into a HH:MM field:
@CALCTEXT(concat( right(concat('00', rounddown([sleep_time],0)),2),
':',
left(round((([sleep_time]-rounddown([sleep_time],0))*60),0),2)))
Hope this helps...