Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        /// <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);
        }