Trying to use a for loop, date commands to calculate date of Memorial day for next 10 years

6 visualizzazioni (ultimi 30 giorni)
I'm trying to use a for loop and the date commands to calculate the date of Memorial day for next 10 years.
cl = clock;
this_year = cl(1)
this_years_MDay = ['25-May-' num2str(this_year)];
[daynum, day_of_the_Mday] = weekday(this_years_MDay, 'long');
day_of_the_Mday = string(day_of_the_Mday);
if floor(now)<datenum(this_years_MDay)
disp('we are before Mday')
years = this_year + [0:9]';
else
disp('we are after Mday')
years = this_year + [1:10]';
end
for n = 1:length(years)
if datetime == week(22)
disp('It could be Mday')
else
datetime == daynum;
disp('It is Mday')
end
end

Risposta accettata

Nikita Agrawal
Nikita Agrawal il 5 Set 2020
Use Financial Toolbox from MATLAB and run the following Command.
I am finding the date of Last Monday of May every year to get the date of Memorial Day.
Year = [2020:2029];
LastDate = lweekdate(2, Year, 5);
datestr(LastDate)
This will give you all the required dates. It seems youare using some wrong commands not defining what you call memorial day.
Check out this link : lweekdate , 2 in my answer is for Monday (Sunday is 1) and 5 is for May (January is 1).
Hope this helps. Do Upvote!

Più risposte (2)

David Hill
David Hill il 5 Set 2020
If you do not have the financial toolbox, here is another method.
t=datetime(2020,5,31);
for k=1:10
t=t+calyears(1);
memorialDay{k}=t-caldays(mod(day(t,'dayofweek')-2,7));
end

Steven Lord
Steven Lord il 6 Set 2020
There's no need for a for loop or Financial Toolbox. Currently Memorial Day is observed on the last Monday in May (though you should special case if your function needs to handle years prior to 1971.) You can compute this with the datetime functionality in MATLAB.
startOfMay = datetime(2019:2022, 5, 1);
endOfMay = dateshift(startOfMay, 'end', 'month');
lastMonday = dateshift(endOfMay, 'dayofweek', 'Monday', 'previous')
Yes, I could have jumped right to defining endOfMay, but I wanted to show how you can shift dates both forward and backward.

Categorie

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

Community Treasure Hunt

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

Start Hunting!

Translated by