Convert Time Given in Seconds to Minute, Seconds, Milliseconds

184 views (last 30 days)
Hi all,
I am trying to convert a time given in seconds such as 183.55s into minute, seconds, milliseconds.
For minute, I'm using: init_mn=fix(init_time/60), which gives me the correct answer.
How can I obtain the seconds and miliseconds without rounding?
Thank you in advance!

Answers (4)

Star Strider
Star Strider on 5 Aug 2021
This is simply a straightforward format change:
t = seconds(183.55)
t = duration
183.55 sec
t.Format = 'hh:mm:ss.SSS'
t = duration
00:03:03.550
producing the desired result.
.

KSSV
KSSV on 5 Aug 2021

Chunru
Chunru on 5 Aug 2021
[h, m, s] = hms(duration([0 0 183.55]))
h = 0
m = 3
s = 3.5500
% for sec and fractional sec
si = floor(s)
si = 3
sf = s-si
sf = 0.5500

Stephen23
Stephen23 on 5 Aug 2021
If you really need minutes (i.e. and not roll-over to hours for >59 minutes) then you can calculate this yourself, e.g.:
inp = 7654.321; % time in seconds
t_min = ceil(1000*inp);
t_ms = mod(t_min,1000) % milliseconds
t_ms = 321
t_min = fix(t_min/1000);
t_sec = mod(t_min,60) % seconds
t_sec = 34
t_min = fix(t_min/60) % minutes
t_min = 127

Categories

Find more on Dates and Time in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!