仅在MATLAB中将日期/时间转换为序号

时间:2013-11-13 01:40:59

标签: matlab date time julian

我正在使用

c = clock;

在MATLAB中

获取当前日期和时间。我想转换当前日期,以便我可以将年中的日期编号作为整数提取并将其存储为单个矢量值。即第1天至第365天

我搜索了Julian Day函数,但函数jd = juliandate()需要至少3个元素,并将其与年份和时间一起格式化。我似乎找不到这样做的功能。如何将日期仅作为整数转换为日期?

即2月1日= 32为整数

注意:我仍然希望将clock中的时间存储在单独的向量中,如hh:ss

2 个答案:

答案 0 :(得分:2)

如何减去截至同年1月1日的天数?

>> x = clock
>> y = zeros(1,6);
>> y(1) = x(1);
>> y(2:3) = [1 1]
>> mjuliandate(x) - mjuliandate(y)

编辑:如果没有忽略小时,分钟或秒,则使用mjuliandate优于juliandate,因为它从午夜而不是中午开始计算。

答案 1 :(得分:1)

您可以使用转化为datenum

c = clock();
tsNow = datenum(c);
tsStart = datenum([c(1) 1 1 0 0 0]); % timestamp at the beginning of this year
daysInYear = tsNow - tsStart;

datenums正是您想要的,即给定固定时间戳(1-Jan-0000)以来的天数。因此差异产生一年中的天数 - 包括闰年等。 如果您想要整天的数量,请使用floor(daysInYear)