exponenta event banner

yearfrac

Доля года между датами

Описание

пример

YearFraction = yearfrac(StartDate,EndDate,Basis) возвращает дробь в годах на основе количества дней между датами StartDate и EndDate использование заданного числа дней Basis.

Количество дней в году (365 или 366) равно количеству дней в календарном году после StartDate. Если EndDate является более ранним, чем StartDate, YearFraction отрицательный.

Все указанные аргументы должны быть количеством инструментов (NUMINSTоколо-1) или (1около-NUMINST) согласующиеся векторы или скалярные аргументы.

Примеры

свернуть все

Дано Basis из 0 и Basis из 1, вычислить yearfrac.

Определите StartDate и EndDate использование Basis из 0.

YearFraction = yearfrac('14 mar 01', '14 sep 01', 0)
YearFraction = 0.5041

Определите StartDate и EndDate использование Basis из 1.

YearFraction = yearfrac('14 mar 01', '14 sep 01', 1)
YearFraction = 0.5000

Дано Basis из 0, вычислить yearfrac когда календарь после StartDate находится в високосном году.

Определите StartDate и EndDate использование Basis из 0.

yearFraction = yearfrac(' 14 mar 03', '14 sep 03', 0)
yearFraction = 0.5027

Между 14 марта и 14 сентября и календарным годом после StartDate это високосный год, так что yearfrac возвращает 184/366 = 0,5027.

Чтобы получить долю года между '31 июля-2015' и '30 сентября-2015', используя фактическую/фактическую основу:

yearfrac('31-Jul-2015', '30-Sep-2015', 0)*2
ans = 0.3333

Для фактического/фактического базиса доля года рассчитывается как:

(Actual Days between Start Date and End Date)/(Actual Days between Start Date and exactly one year after Start Date)

Между 61 и 31-Jul-2015 30-Sep-2015 дней. Поскольку следующий год - високосный, между 366 и 31-Jul-2015 31-Jul-2016 дней. Итак, есть 61/366, что в точности равно 1/6. Учитывая это, именно 2/6 является ожидаемым результатом для доли шестимесячного периода.

Использовать Basis из 12 для вычисления yearfrac когда части диапазона дат находятся в високосном году и в непереходном году. Продукция YearFraction - доля в годах, основанная на количестве дней между StartDate и EndDate.

YearFraction = yearfrac('1-Jan-2016','30-Jan-2017',12)
YearFraction = 1.0795

Дано Basis из 9, вычислить yearfrac когда StartDate и EndDate задаются с помощью массивов datetime.

yearfrac(datetime('1-Jan-2000','Locale','en_US'), '1/1/2001', 9)
ans = 1.0167

Входные аргументы

свернуть все

Дата начала, указанная как Nоколо-1 или 1около-N вектор с использованием серийных номеров дат, векторов символов даты или массивов datetime.

Типы данных: double | char | datetime

Дата окончания, указанная как Nоколо-1 или 1около-N вектор с использованием серийных номеров дат, векторов символов даты или массивов datetime.

Типы данных: double | char | datetime

База подсчета дней для каждого набора дат, указанная как Nоколо-1 или 1около-N вектор целых чисел со значениями 0 через 13.

  • 0 = факт/факт (по умолчанию)

  • 1 = 30/360 (SIA)

  • 2 = фактически/360

  • 3 = факт/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Дополнительные сведения см. в разделе Базис.

Типы данных: single | double

Выходные аргументы

свернуть все

Реальные числа, идентифицирующие интервал в годах между StartDate и EndDate, вернул Nоколо-1 или 1около-N вектор.

Подробнее

свернуть все

Разница между yearfrac и date2time

Разница между yearfrac и date2time является ли это date2time подсчитывает полные периоды как целое число, даже если количество фактических дней в периодах различно. yearfrac не считает полные периоды.

Например,

yearfrac('1/1/2000', '1/1/2001', 9)

ans =

    1.0167

yearfrac для Basis 9 (ACT/360 ICMA) вычисляет 366/360 = 1,0167. Таким образом, даже если даты имеют один и тот же месяц и дату с разницей 1 в году, возвращаемое значение может быть не точно 1. С другой стороны, date2time вычисляет один полный период года:

date2time('1/1/2000', '1/1/2001', 1, 9)

ans =

     1

Представлен до R2006a