determine if a datetime value is on a different day
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Tim
am 3 Mär. 2025
Kommentiert: Peter Perkins
am 3 Mär. 2025
If I have two datetime values, t1 and t2, how can I determine if t2 is on a different, and later, day than t1? The check needs to account for end-of-month and end-of-year rollovers, and the times (hr, min, sec) may not be the same between t1 and t2. I just need to know if they are are different calendar days.
Functions like between and caldiff seem to return a duration, but if that duration is less than 24 hours, this method won't work. For example, two times only 2 minutes apart but accoss a day boundary:
t1 = datetime('2025-03-01 23:59:00')
t2 = datetime('2025-03-02 00:01:00')
dt = caldiff([t2 t1],'days')
between(t1,t2,'days')
datenum would work, but MATLAB is recommending not to use. How can this be done with datetime values and functions?
0 Kommentare
Akzeptierte Antwort
Stephen23
am 3 Mär. 2025
Bearbeitet: Stephen23
am 3 Mär. 2025
"Functions like between and caldiff seem to return a duration"
BETWEEN and CALDIFF will not help you. Either use DATESHIFT or the properties of the DATETIME object:
t1 = datetime('2025-03-01 23:59:00')
t2 = datetime('2025-03-02 00:01:00')
dateshift(t1,'start','day')==dateshift(t2,'start','day')
t1.Year==t2.Year && t1.Month==t2.Month && t1.Day==t2.Day
Weitere Antworten (1)
Walter Roberson
am 3 Mär. 2025
t1 = datetime('2025-03-01 23:59:00')
t2 = datetime('2025-03-02 00:01:00')
t2 >= t1 & dateshift(t1, 'start', 'day') == dateshift(t2, 'start', 'day')
0 Kommentare
Siehe auch
Kategorien
Mehr zu Dates and Time finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!