calculating the difference between 2 dates
43 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
antonet
el 25 de Mayo de 2012
Comentada: Rosanna
el 11 de Oct. de 2018
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
0 comentarios
Respuesta aceptada
Walter Roberson
el 25 de Mayo de 2012
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 comentarios
Walter Roberson
el 26 de Mayo de 2012
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
Más respuestas (1)
Andy
el 13 de Mzo. de 2018
Editada: Andy
el 13 de Mzo. de 2018
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 comentarios
Peter Perkins
el 15 de Mzo. de 2018
Indeed:
>> between(datetime('20-Nov-2008'),datetime('12-Oct-2011'),{'weeks' 'months'})
ans =
calendarDuration
34mo 3w
Rosanna
el 11 de Oct. de 2018
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
Ver también
Categorías
Más información sobre Time Series Objects en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!