help writing a script that tells the day of the week

4 vues (au cours des 30 derniers jours)
bachir
bachir le 9 Oct 2015
Modifié(e) : Stephen23 le 12 Oct 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 commentaires
John D'Errico
John D'Errico le 10 Oct 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 le 10 Oct 2015
I've got it from Star Strider

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 10 Oct 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 commentaires
bachir
bachir le 10 Oct 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 le 10 Oct 2015
My pleasure, and quite definitely male!
Have fun!

Connectez-vous pour commenter.

Plus de réponses (2)

Peter Perkins
Peter Perkins le 10 Oct 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 le 10 Oct 2015
Modifié(e) : Stephen23 le 12 Oct 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.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by