Get tenor between two time points

5 次查看(过去 30 天)
In excel, if some cells are in the format of date, then the difference of the cells gives you the tenor. How can I do that in Matlab?
To be specific I mean I already have some serial data number, say 20110610 and 20110716 (today's date and the expiration date of the contract), and I wanna get the number of days between these two dates. So in this example I'd like to get 36.
If I do: 20110716-20110610, the ans is 106, the same as
datenum(20110716)-datenum(20110610)=106
So my question is, again, how can I get 36 out of these two dates?
Thanks in advance :)

采纳的回答

Andrew Newell
Andrew Newell 2011-6-10
d1 = datenum('20110610','yyyymmdd');
d2 = datenum('20110716','yyyymmdd');
d2-d1
  8 个评论
Andrew Newell
Andrew Newell 2011-6-10
'D' is not the string version of the number:
>> D = 20110609;
>> D
D =
20110609
>> 'D'
ans =
D
Use d2 = datenum(num2str(D),'yyyymmdd') instead.
Fangjun Jiang
Fangjun Jiang 2011-6-10
You need to learn a little bit about the data type of Matlab.
In "D=20110609", D is the variable name, its value is 20110609. In "d2=datenum('D','yyyymmdd'), D is the capital letter D. What you really need is datenum(num2str(D),'yyyymmdd').
To make it work for vector,
a=[20110711 20110712 20110712];
datenum(arrayfun(@num2str,a,'un',0),'yyyymmdd')

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Time Series Objects 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by