# time2date

Dates from time and frequency

## Syntax

```Dates = time2date(Settle,Times,Compounding,Basis,EndMonthRule) ```

## Arguments

 `Settle` Settlement date. A vector of serial date numbers or date character vectors. `Times ` Vector of times corresponding to the compounding value. `Times` must be equal to or greater than 0. `Compounding` (Optional) Scalar value representing the rate at which the input zero rates were compounded when annualized. Default = `2`. This argument determines the formula for the discount factors: `Compounding` = `1`, `2`, `3`, `4`, `6`, `12` = `F````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 1 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. `Basis` (Optional) Day-count basis of the instrument. A vector of integers. 0 = actual/actual (default)1 = 30/360 (SIA)2 = actual/3603 = actual/3654 = 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 For more information, see Basis. `EndMonthRule` (Optional) End-of-month rule. A vector. 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 bond's coupon payment date is always the same numerical day of the month. `1` = set rule on (default), meaning that a bond's coupon payment date is always the last actual day of the month.

## Description

`Dates = time2date(Settle,Times,Compounding,Basis,EndMonthRule)` computes dates corresponding to compounded rate quotes between `Settle` and time factors.

### Note

To obtain accurate results from this function, the `Basis` and `Dates` arguments must be consistent. If the `Dates` argument contains months that have 31 days, `Basis` must be one of the values that allow months to contain more than 30 days; for example, `Basis` = `0`, `3`, or `7`.

The `time2date` function is the inverse of `date2time`.

## Examples

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; Times = date2time(Settle, Dates, Compounding, Basis,... EndMonthRule)```
```Times = 5.9945 6.9945 7.5738 8.6576 ```

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

```Dates_calc = time2date(Settle, Times, Compounding, Basis,... EndMonthRule) Dates_calc = 732555 732736 732843 733042 datestr(Dates_calc)```
```ans = 31-Aug-2005 28-Feb-2006 15-Jun-2006 31-Dec-2006 ```