Convert Time Given in Seconds to Minute, Seconds, Milliseconds

178 vues (au cours des 30 derniers jours)
Soeun Lee
Soeun Lee le 5 Août 2021
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!

Réponses (4)

Star Strider
Star Strider le 5 Août 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 le 5 Août 2021

Chunru
Chunru le 5 Août 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 le 5 Août 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

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by