help writing a script that tells the day of the week

2 Ansichten (letzte 30 Tage)
bachir
bachir am 9 Okt. 2015
Bearbeitet: Stephen23 am 12 Okt. 2015
I need help writing a code that tells me the day of the week as well as the number of the day relative to the year. Ex: input form month/day/year: xx/xx/xxxx output should say something like: The date 08/31/2011 is the 243 day of the year and is a wednesday.
I have tried so many different things from Mathworks with no luck.
  2 Kommentare
John D'Errico
John D'Errico am 10 Okt. 2015
disp('Today is Monday")
Correct at least once a week. Oh. did you want it to get the day right, all the time?
bachir
bachir am 10 Okt. 2015
I've got it from Star Strider

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Star Strider
Star Strider am 10 Okt. 2015
One way (not using datetime, since not everyone may have it):
InpStr = '08/31/2011';
YrStart = datenum(InpStr(end-3:end), 'yyyy');
dtnm = datenum(InpStr, 'mm/dd/yyyy');
[DayOfWkNum,DayOfWkStr] = weekday(dtnm,'long');
fprintf(1, '\n\tThe date %s is the %d day of the year and is a %s\n', InpStr, dtnm-YrStart+1, DayOfWkStr)
The date 08/31/2011 is the 243 day of the year and is a Wednesday
  2 Kommentare
bachir
bachir am 10 Okt. 2015
Star Strider, You the man! or woman...! I modified it a little to fit my style but thanks a lot
Star Strider
Star Strider am 10 Okt. 2015
My pleasure, and quite definitely male!
Have fun!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Peter Perkins
Peter Perkins am 10 Okt. 2015
... and another way, using datetime (if you have R2014b or later):
>> d = datetime('08/31/2011','InputFormat','MM/dd/yyyy')
d =
31-Aug-2011
>> day(d,'dayofyear')
ans =
243
>> day(d,'name')
ans =
'Wednesday'

Stephen23
Stephen23 am 10 Okt. 2015
Bearbeitet: Stephen23 am 12 Okt. 2015
The grammar pedants amongst us may appreciate my FEX submission datestr8601, which provides a day-of-the-year string with the correct ordinal suffix:
>> X = [2011,08,31];
>> [A,B,C] = datestr8601(X,'*ymd','nnn','DDDD')
A =
2011-08-31
B =
243rd
C =
Wednesday
>> sprintf('The date %s is the %s day of the year, and is a %s.',A,B,C)
ans =
The date 2011-08-31 is the 243rd day of the year, and is a Wednesday.

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by