Round Datetime to certain minutes

5 views (last 30 days)
Dario Walter
Dario Walter on 19 Nov 2020
Commented: Dario Walter on 20 Nov 2020
Hey,
I am trying to round an array of datatype datetime to nearest 20 and 50 minutes, e.g. 16:30 - 16:20, 16:54 - 16:50, 16:01 - 15:50, 2020Nov19 00:01 - 2020Nov18 23:50. Does anyone have an idea? I already tried dateshift and interp1.
Your help is highly appreciated.

Accepted Answer

dpb
dpb on 19 Nov 2020
interp1 will work...
dt=datetime(2020,11,18,00,1+[0:30].',0); % sample datetime array
dt20=datetime(2020,11,17,0,[20:30:2400].',0); % 30 min array at 20, 50 past hour
>> interp1(dt20,dt20,dt,'nearest')
ans =
31×1 datetime array
17-Nov-2020 23:50:00
17-Nov-2020 23:50:00
17-Nov-2020 23:50:00
17-Nov-2020 23:50:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
18-Nov-2020 00:20:00
>>
There's probably more clever ways...

More Answers (0)

Tags

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!