yearfrac
计算日期之间的天数占全年的比例
说明
使用给定的计日 YearFraction
= yearfrac(StartDate
,EndDate
,Basis
)Basis
计算并返回日期 StartDate
和 EndDate
之间的天数占全年的比例(以年为单位)。
一年中的天数(365 天或 366 天)等于 StartDate
之后日历年的天数。如果 EndDate
早于 StartDate
,则 YearFraction
为负。
指定的所有参量必须是与 M
×NUMINST
兼容的矩阵或标量参量。
示例
计算 StartDate 之后的日历年不是闰年情况下的 yearfrac
给定 Basis
为 0
和 Basis
为 1
,计算这两种情况下的 yearfrac
。
按 Basis
为 0
定义 StartDate
和 EndDate
。
YearFraction = yearfrac('14 mar 01', '14 sep 01', 0)
YearFraction = 0.5041
按 Basis
为 1
定义 StartDate
和 EndDate
。
YearFraction = yearfrac('14 mar 01', '14 sep 01', 1)
YearFraction = 0.5000
计算 StartDate 之后的日历年是闰年情况下的 yearfrac
按 Basis
为 0
计算 StartDate
后的日历年是闰年情况下的 yearfrac
。
按 Basis
为 0
定义 StartDate
和 EndDate
。
yearFraction = yearfrac(' 14 mar 03', '14 sep 03', 0)
yearFraction = 0.5027
3 月 14 日到 9 月 14 日之间有 184 天,且 StartDate
后的日历年是闰年,因此 yearfrac
返回 184/366 = 0.5027。
使用 actual/actual basis 计算年份比例
使用 actual/actual basis 计算 '31 -Jul-2015' 和 '30 -Sep-2015' 之间的天数占全年的比例:
yearfrac('31-Jul-2015', '30-Sep-2015', 0)*2
ans = 0.3333
对于 actual/actual basis,天数占全年比例的计算公式如下:
(Actual Days between Start Date and End Date)/(Actual Days between Start Date and exactly one year after Start Date)
从 2015 年 7 月 31 日到 2015 年 9 月 30 日之间有 61 天。由于下一年是闰年,因此 2015 年 7 月 31 日到 2016 年 7 月 31 日之间有 366 天。因此,61/366,正好是 1/6。因此,在这种情况下,按 6 个月期间计算,间隔天数所占比例的预期结果正好是 2/6。
计算日期范围跨越闰年情况下的 yearfrac
使用 Basis
值 12 来计算日期范围跨越闰年和非闰年时的 yearfrac
。输出 YearFraction
是 StartDate
和 EndDate
之间的天数占全年的比例(以年为单位)。
YearFraction = yearfrac('1-Jan-2016','30-Jan-2017',12)
YearFraction = 1.0795
在指定了日期时间的情况下计算 yearfrac
给定 Basis
值为 9
并使用日期时间指定 StartDate
和 EndDate
,计算此情况下的 yearfrac
。
yearfrac(datetime(2000,1,1), datetime(2001,1,1), 9)
ans = 1.0167
输入参数
Basis
— 每组日期的计日基数
0
(actual/actual) (默认) | 值为 0
到 13
的数值向量
每组日期的计日基数,指定为 0
到 13
之间的一个标量,或由这些值组成的 M
×N
矩阵。
.
0 = actual/actual(默认)
1 = 30/360 (SIA)
2 = actual/360
3 = actual/365
4 = 30/360 (BMA)
5 = 30/360 (ISDA)
6 = 30/360 (European)
7 = actual/365 (Japanese)
8 = actual/actual (ICMA)
9 = actual/360 (ICMA)
10 = actual/365 (ICMA)
11 = 30/360E (ICMA)
12 = actual/365 (ISDA)
13 = BUS/252
有关详细信息,请参阅Basis。
数据类型: single
| double
输出参量
YearFraction
— StartDate
和 EndDate
之间的实际间隔(以年为单位)
向量
StartDate
和 EndDate
之间的实际间隔(以年为单位),以标量或 M
×N
矩阵形式返回。
详细信息
yearfrac
和 date2time
之间的差别
yearfrac
和 date2time
之间的差别是,date2time
将完整周期计为一个整数,即使这些周期中的实际天数不同也是如此。yearfrac
不计算完整周期。
例如,
yearfrac('1/1/2000', '1/1/2001', 9) ans = 1.0167
对于 Basis
9
(ACT/360 ICMA),yearfrac
计算 366/360 = 1.0167。因此,即使日期具有相同的月份和日期(年份中的差值为 1),返回值也可能不完全等于 1。另一方面,date2time
计算一个整年周期:
date2time('1/1/2000', '1/1/2001', 1, 9) ans = 1
版本历史记录
在 R2006a 之前推出MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)