コード例 #1
0
        public int GetOpenDate(double time)
        {
            /*
             * 如果time对应的日子是开盘日
             * 如果时间早于当日开盘时间,那么返回之前的一天
             * 如果时间晚于开盘时间,如果早于第二天开盘时间
             */
            int date = (int)time;

            if (dicOpenTime.ContainsKey(date))
            {
                return(GetOpenDateTimeIsInOpenDate(time, date));
            }

            int nextOpenDate = cache.GetNextTradingDay(date);

            if (nextOpenDate < 0)
            {
                return(-1);
            }
            if (IsInOpenTime(nextOpenDate, time))
            {
                return(nextOpenDate);
            }

            int prevOpenDate = cache.GetPrevTradingDay(date);

            if (prevOpenDate < 0)
            {
                return(-1);
            }
            if (IsInOpenTime(prevOpenDate, time))
            {
                return(prevOpenDate);
            }

            return(-1);
        }