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); }