コード例 #1
0
        /// <summary>
        /// Вычисление фактического взвешенного торгового времени (по алгоритму Liquid.Pro)
        /// между двумя датами по расписанию ФОРТС на 19.09.2017.
        /// </summary>
        /// <param name="end">конечная дата</param>
        /// <param name="beg">начальная дата</param>
        /// <param name="daysinEndYear">количество дней в году, который указан в поздней из двух дат</param>
        public static double GetDtLiquidProRtsTradingTime(DateTime end, DateTime beg, out double daysInEndYear)
        {
            daysInEndYear = LiquidProTimeModelRepository.GetDaysInYear(end.Year);

            if (end == beg)
            {
                return(0); // Совпадающие даты всегда имеют нулевое расстояние
            }
            else if (end < beg)
            {
                return(-GetDtLiquidProRtsTradingTime(beg, end, out daysInEndYear)); // При "неправильном" порядке дат делаю рекурсивный вызов
            }
            double dT = LiquidProTimeModelRepository.GetYearPartBetween(beg, end);

            return(dT);
        }
コード例 #2
0
        /// <summary>
        /// Получить полное количество торговых дней в году с учетом их весов.
        /// (Результат кешируется в статической коллекции для ускорения последующих обращений)
        /// </summary>
        /// <param name="year">год, который нас интересует</param>
        /// <returns>полное количество торговых дней в году с учетом их весов</returns>
        public static double GetLiquidProRtsTradingDaysInYear(int year)
        {
            double daysInYear = LiquidProTimeModelRepository.GetDaysInYear(year);

            return(daysInYear);
        }