How to find the day number of any year from a date?
170 次查看(过去 30 天)
显示 更早的评论
I am very new in programming and therefore it is probably a novice's question. I have to write a script that takes a number of day(dd), month(mm) and year(yyyy)values arranged in three separate columns of a MATLAB variable and gives the day number of the year(e.g. for 03 March 2012, 31+29+3=63) as output.
采纳的回答
Peter Perkins
2015-7-23
If you are using R2014b or later, the datetime data type allows you to compute the day of year using the day function:
>> x = [2012 1 2; 2012 3 3; 2013 3 3]
x =
2012 1 2
2012 3 3
2013 3 3
>> d = datetime(x)
d =
02-Jan-2012
03-Mar-2012
03-Mar-2013
>> day(d,'dayofyear')
ans =
2
63
62
2 个评论
Peter Perkins
2015-7-24
Presumably, you are not "using R2014b or later". datetime did not exist prior to that.
更多回答(3 个)
Andrei Bobrov
2015-7-24
x = [2012 1 2; 2012 3 3; 2013 3 3];
d = datenum(x);
out = d - datenum(year(d),1,1) + 1;
0 个评论
Sergey Kostrukov
2022-2-12
编辑:Sergey Kostrukov
2022-2-12
Fractional value of days since biginning of the year (0-364.9999):
daysFrac = days(currentTime - datetime(year(currentTime), 1, 1, TimeZone=currentTime.TimeZone))
To get the whole number starting from 1 (i.e. day index):
floor(daysFrac + 1)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Dates and Time 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!