# time2date

Dates from time and frequency

## Syntax

``Dates = time2date(Settle,TFactors)``
``Dates = time2date(___,Compounding,Basis,EndMonthRule)``

## Description

````Dates = time2date(Settle,TFactors)` computes `Dates` corresponding to compounded rate quotes between `Settle` and `TFactors`. `time2date` is the inverse of `date2time`.```

````Dates = time2date(___,Compounding,Basis,EndMonthRule)` computes `Dates` corresponding to compounded rate quotes between `Settle` and `TFactors` using optional input arguments for `Compounding`, `Basis`, and `EndMonthRule`. `time2date` is the inverse of `date2time`.```

## Examples

collapse all

Show that `date2time` and `time2date` are the inverse of each other. First compute the time factors using `date2time`.

```Settle = '1-Sep-2002'; Dates = datenum(['31-Aug-2005'; '28-Feb-2006'; '15-Jun-2006'; '31-Dec-2006']); Compounding = 2; Basis = 0; EndMonthRule = 1; TFactors = date2time(Settle, Dates, Compounding, Basis,... EndMonthRule)```
```TFactors = 4×1 5.9945 6.9945 7.5738 8.6576 ```

Now use the calculated `TFactors` in `time2date` and compare the calculated dates with the original set.

```Dates_calc = time2date(Settle, TFactors, Compounding, Basis,... EndMonthRule)```
```Dates_calc = 4×1 732555 732736 732843 733042 ```
`datestr(Dates_calc)`
```ans = 4x11 char array '31-Aug-2005' '28-Feb-2006' '15-Jun-2006' '31-Dec-2006' ```

Show `time2date` support for `datetime` input for `Settle`.

```Settle = '1-Sep-2002'; Dates = datenum(['31-Aug-2005'; '28-Feb-2006'; '15-Jun-2006'; '31-Dec-2006']); Compounding = 2; Basis = 0; EndMonthRule = 1; TFactors = date2time(Settle, Dates, Compounding, Basis,... EndMonthRule); Dates_calc = time2date(datetime(Settle,'Locale','en_US'), TFactors,... Compounding, Basis, EndMonthRule)```
```Dates_calc = 4x1 datetime 31-Aug-2005 28-Feb-2006 15-Jun-2006 31-Dec-2006 ```

## Input Arguments

collapse all

Settlement date, specified as a serial date number, date character vector, or datetime array.

Data Types: `double` | `char` | `datetime`

Time factors, corresponding to the compounding value, specified as a vector. `TFactors` must be equal to or greater than zero.

Data Types: `double`

Rate at which input zero rates are compounded when annualized, specified as a scalar with numeric values of: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `12`, `365`, or `–1`. Allowed values are defined as:

• `0` — Simple interest (no compounding)

• `1` — Annual compounding

• `2` — Semiannual compounding (default)

• `3` — Compounding three times per year

• `4` — Quarterly compounding

• `6` — Bimonthly compounding

• `12` — Monthly compounding

• `365` — Daily compounding

• `-1` — Continuous compounding

The optional `Compounding` argument determines the formula for the discount factors (`Disc`):

• `Compounding` = `1`, `2`, `3`, `4`, `6`, `12`

• `Disc = (1 + Z/F)^(-T)`, where `F` is the compounding frequency, `Z` is the zero rate, and `T` is the time in periodic units, for example, ```T = F``` is one year.

• `Compounding` = `365`

• `Disc = (1 + Z/F)^(-T)`, where `F` is the number of days in the basis year and `T` is a number of days elapsed computed by basis.

• `Compounding` = `-1`

• `Disc = exp(-T*Z)`, where `T` is time in years.

Day-count basis, specified as an integer with a value of `0` through `13` or a `N`-by-`1` vector of integers with values `0` through `13`.

• 0 = actual/actual (default)

• 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

Data Types: `single` | `double`

End-of-month rule flag for month having 30 or fewer days, specified as scalar nonnegative integer [`0`, `1`] or a using a `N`-by-`1` vector of values. This rule applies only when `Maturity` is an end-of-month date for a month having 30 or fewer days.

• `0` = Ignore rule, meaning that a payment date is always the same numerical day of the month.

• `1` = Set rule on, meaning that a payment date is always the last actual day of the month.

Data Types: `logical`

## Output Arguments

collapse all

Dates corresponding to compounded rate quotes between `Settle` and `TFactors`, returned as a scalar or a `N`-by-`1` vector using serial date numbers or datetime arrays.

Data Types: `double` | `datetime`