Finding the end date of each month/year

16 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 25 Giu 2012
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');

Più risposte (1)

grapevine
grapevine il 25 Giu 2012
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.
  1 Commento
antonet
antonet il 25 Giu 2012
Thank you! i did not know that such function exists
So this means that I have to do something like
eomday(2008, 11:12)
and eomday(2009, 1:7) which is fine.
But this approach seems to be "quite manual".
My goal is to replace the above "dates" vector with the "end dates" vector less
"manually"
That is, to replace
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'];
with
enddates=[31/11/08
30/12/08
.
.
.]
Is there a way to do that more quickly?
thank you again

Accedi per commentare.

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by