This function rounds datetime or serial date numbers or date vectors to the nearest year, month, day, hour, minute, or second. With a choice of rounding, floor, or ceiling.
### Examples ###
Examples use the date+time described by the vector [1999,1,3,15,6,48.0568].
datevec(dateround(730123.62972287962))
ans = [1999,1,3,15,6,48]
datevec(dateround([1999,1,3,15,6,48.0568]))
ans = [1999,1,3,15,6,48]
datevec(dateround([1999,1,3,15,6,48.0568],'minute'))
ans = [1999,1,3,15,7,0]
datevec(dateround([1999,1,3,15,6,48.0568],5)) % 5=='minute'
ans = [1999,1,3,15,7,0]
datevec(dateround([1999,1,3,15,6,48.0568],5,'floor'))
ans = [1999,1,3,15,6,0]
datevec(dateround([1999,12,31,23,59,59.5000;1999,12,31,23,59,59.4999]))
ans = [2000,1,1,0,0,0;1999,12,31,23,59,59]
Stephen Cobeldick (2021). Round Dates and Times (https://www.mathworks.com/matlabcentral/fileexchange/39274-round-dates-and-times), MATLAB Central File Exchange. Retrieved .
Inspired by: datevecfix.m v2.0 (Jun, 2009), Round off dates and times, Convert between world time zones with daylight saving times, Date Vector/Number to ISO 8601 Date String, ISO 8601 Date String to Serial Date Number
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Create scripts with code, output, and formatted text in a single executable document.
Nicely done. It is useful to have a time rounding fn to determine if times are equal within a tolerance, especially if they may have lost significant digits.