MATLAB: Define time period for each year

datetimetime period

Hi all,
I wish to re-define my time period.
The initial time period is as following:
The time period ranges from 01-10 (1st of Oct.) till 30-04 (30th of Apr.).
The range is defined by months only. The array 'Date' contains datetime value that is in yyyy-MM-dd format.
% starting month
sm = 5;
% ending month
em = 9;
% starting day
fd = 1;
% ending day
ld = 30;
PERIOD_1 = find(month(Date)<sm) | month(Date)>em)
PERIOD_2 = find(month(Date)>(sm-1) & month(Date)<(em+1))
As for a new time period, I wish to use both day values ('starting day' and 'ending day') as well, because if not…
i won't be able to define period that does not start on the 1st of a month (e.g. 04-10 till 27-04).
Thank you!

Best Answer

[y, m, d] = ymd(YourDataTable.Date);
mask = m >= sm & m <= em & (m > sm | d >= fd) & (m < em | d <= ld);
selected_entries = YourDataTable(mask,:);