/// <summary> /// Function: Returns the closest business day that is NUM calendar days away. /// </summary> /// <param name="num">Number of business days away. /// </param> /// <param name="type">Type of search. /// </param> public BusinessDay AddActualDays(int num, TimeSeries.DateSearchType type) { BusinessDay bday = Calendar.GetClosestBusinessDay(DateTime.AddDays(num), type); bday.SetTime(DateTime.TimeOfDay); return(bday); }
/// <summary> /// Function: Return the business day closest to a given date. /// </summary> /// <param name="date">Reference date. /// </param> /// <param name="type">Type of search. /// </param> public BusinessDay GetClosestBusinessDay(DateTime date, TimeSeries.DateSearchType type) { BusinessDay res = GetBusinessDay(date); if (res != null) { BusinessDay ret = new BusinessDay(res.DateTime, res.DayMonth, res.DayYear, res.DayIndex, res.CalendarID); return(ret); } if (type == TimeSeries.DateSearchType.Previous) { DateTime firstDate = _dateTimes[0]; DateTime lastDate = _dateTimes[_dateTimes.Count - 1]; if (date >= lastDate) { BusinessDay temp = GetBusinessDay(lastDate); BusinessDay bday = new BusinessDay(temp.DateTime, temp.DayMonth, temp.DayYear, temp.DayIndex, temp.CalendarID); res.SetTime(date.TimeOfDay); return(res); } for (DateTime d = date; d >= firstDate; d = d.AddDays(-1)) { res = GetBusinessDay(d); if (res != null) { BusinessDay bday = new BusinessDay(res.DateTime, res.DayMonth, res.DayYear, res.DayIndex, res.CalendarID); bday.SetTime(date.TimeOfDay); return(bday); } } } else { DateTime lastDate = _dateTimes[_dateTimes.Count - 1]; for (DateTime d = date; d <= lastDate; d = d.AddDays(1)) { res = GetBusinessDay(d); if (res != null) { BusinessDay bday = new BusinessDay(res.DateTime, res.DayMonth, res.DayYear, res.DayIndex, res.CalendarID); bday.SetTime(date.TimeOfDay); return(bday); } } } return(null); }
/// <summary> /// Function: Returns the closest business day that is NUM years away. /// </summary> /// <param name="num">Number of years away. /// </param> /// <param name="type">Type of search. /// </param> public BusinessDay AddYears(int num, TimeSeries.DateSearchType type) { DateTime newDate = this.DateTime.AddYears(num); BusinessDay bday = Calendar.GetClosestBusinessDay(newDate, type); bday.SetTime(DateTime.TimeOfDay); return(bday); }