Finding the end date of each month/year
9 次查看(过去 30 天)
显示 更早的评论
Dear all,
I have the following sequence of dates
dates =[ '23/11/08'
'28/12/08'
'25/01/09'
'22/02/09'
'29/03/09'
'26/04/09'
'24/05/09'
'28/06/09'
'26/07/09'];
Is there any way to find the end date for each of these months.
For example the last date of November 2008 (11/08) is 30/11/08. Similarly, the last date of December 2008 is 31/12/08 and so forth. I have a large vector of “dates” and an “quick” way to find these dates would be better
Thank you
0 个评论
采纳的回答
Andrei Bobrov
2012-6-25
one way
dates =[ '23/11/08'
'28/12/08'
'25/01/09'
'22/02/09'
'29/03/09'
'26/04/09'
'24/05/09'
'28/06/09'
'26/07/09'];
dv = datevec(dates,'dd/mm/yy');
dc = num2cell(dv(:,1:2),1);
enddates = datestr(datenum(dc{:},eomday(dc{:})),'dd/mm/yy');
or
[Y, M] = datevec(dates,'dd/mm/yy');
out = datestr(datenum([Y, M, eomday(Y, M)]),'dd/mm/yy');
second way with use function eomdate from Financial Toolbox
enddates = datestr(eomdate(datenum(dates,'dd/mm/yy')),'dd/mm/yy');
other way
[Y, M] = datevec(dates,'dd/mm/yy');
enddates = datestr(datenum(Y,M+1,1)-1,'dd/mm/yy');
更多回答(1 个)
grapevine
2012-6-25
This is what you are looking
E = eomday(Y, M)
returns the last day of the year and month given by corresponding elements of arrays Y and M.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!