Advice needed with the dateshift function

I'm struggling with the dateshift function and need some help if anyone can offer it.
I need to write some code that, once a menu option is chosen, will provide the next of two dates. i.e. If option 1 is selected on the menu, then either the next sunday date is displayed or the next wednesday date, whichever is nearest.
I can display the next sunday date, AND the next wednesday date, but i can't display the next sunday OR the next wednesday.

1 Kommentar

Here is the code i have been using. I'm not an expert so i understand there may be an easier way to do this.
t = datetime('today');
t = datetime;
if Menu == 1
Sunday = dateshift(t,'dayofweek','Sunday',1)
end
if Menu == 2
Wednesday = dateshift(t,'dayofweek','Wednesday',1)
end
if Menu == 3
Next_Day_Is = dateshift(t,'dayofweek','Sunday','Wednesday',1)
end

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Walter Roberson
Walter Roberson am 12 Apr. 2019

0 Stimmen

days_to_shift_Sw = [0 2 1 0 3 2 1]
days_to_shift_Sw( day(t, 'dayofweek') )

4 Kommentare

Michael T
Michael T am 13 Apr. 2019
Hi Walter,
Thanks for your help. I’m not quite sure how to implement the code you sent though. I can see by running it that a 1 appears, presumably because it’s Sunday tomorrow so the result is shifted one day. But I’m not sure how to adapt that to the core I sent originally?
Walter Roberson
Walter Roberson am 13 Apr. 2019
Add that number of days to the current date.
Question though: if it is already Sunday, then should the date stay the same, or should it be the next Wednesday ?
Michael T
Michael T am 13 Apr. 2019
If it’s already Sunday then the date can stay Sunday. It’s really more if it’s monday or Thursday for example.
Walter Roberson
Walter Roberson am 13 Apr. 2019
Okay, so just add the indicated number of days to the current day.

Melden Sie sich an, um zu kommentieren.

AMAN GARG
AMAN GARG am 27 Jul. 2020

0 Stimmen

dayshift(x,'Start','Hour')
Steven Lord
Steven Lord am 27 Jul. 2020

0 Stimmen

N = datetime('today')
W = dateshift(N, 'dayofweek', 'Wednesday')
S = dateshift(N, 'dayofweek', 'Sunday')
answer = min(W, S)

Kategorien

Tags

Gefragt:

am 12 Apr. 2019

Beantwortet:

am 27 Jul. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by