yearfrac

Часть года между датами

Синтаксис

YearFraction = yearfrac(StartDate,EndDate,Basis)

Описание

пример

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

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

Все заданные аргументы должны быть количеством инструментов (NUMINST-by-1) или (1-by-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

Существует 184 дня между 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 июля 2015 и 30 сентября 2015. Поскольку следующий год является високосным годом, существует 366 дней между 31 июля 2015 и 31 июля 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-by-1 или 1-by-N вектор с помощью последовательных чисел даты, векторов символов даты или массивов datetime.

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

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

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

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

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

  •  1 = 30/360 (СИА)

  •  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 = ШИНА/252

Для получения дополнительной информации смотрите основание.

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

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

свернуть все

Вещественные числа, идентифицирующие интервал, в годах, между StartDate и EndDate, возвратили N-by-1 или 1-by-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

Для просмотра документации необходимо авторизоваться на сайте