calculating the difference between 2 dates

63 次查看(过去 30 天)
Dear all,
I would like to calculate the difference between the dates say,
20/11/08 and 12/10/2011 in weeks and in months
cheers

采纳的回答

Walter Roberson
Walter Roberson 2012-5-25
numdays = datenum('12/10/2011') - datenum('20/11/08');
numweeks = numdays / 7; %and round() or floor() or ceil() as appropriate
numdaysvec = datevec(numdays);
nummonths = numdaysvec(1) * 12 + numdaysvec(2) - 1;
Note that you might have to give datenum() a hint as to whether the first date is the 11th month of 2008 or the 8th month of 2011.
Also, I used a shortcut here of converting the day offset as if it was a date relative to "year 0". MATLAB has weak leap-year routines that believe that "year 0" was a leap year. More accurate would be to datevec() the original dates and do modular arithmetic.
Oh yes, you also need to decide whether dates in the same month count as "0 months" or as "1 month" for your purposes.
  4 个评论
Walter Roberson
Walter Roberson 2012-5-26
Your date '20/11/08' is ambiguous. MATLAB is guessing incorrectly about the format it is in. You should be telling MATLAB the format when you datenum() the string. http://www.mathworks.com/help/techdoc/matlab_prog/bspgcx2-1.html#bsplnu3-2
datenum('20/11/08', 'dd/yy/mm') or datenum('20/11/08', 'dd/mm/yy') as appropriate

请先登录,再进行评论。

更多回答(1 个)

Andy
Andy 2018-3-13
编辑:Andy 2018-3-13
there's something better now since 2014 release I believe:
w = between(startRange,endRange,'weeks')
y = between(startRange,endRange,'years')
m = between(startRange,endRange,'months')
  2 个评论
Peter Perkins
Peter Perkins 2018-3-15
Indeed:
>> between(datetime('20-Nov-2008'),datetime('12-Oct-2011'),{'weeks' 'months'})
ans =
calendarDuration
34mo 3w
Rosanna
Rosanna 2018-10-11
Hi all I have to compute the occurrence time (days from the starting date) of a large number (eg N=1000) of events, for which I have the Year, Month, Day, Hour, Minute in numerical format (eg 2008, 05, 23, 08, 34). How can I proceed? Thanks Rosanna

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by