/// <summary> /// 获取指定号码的可能周期 /// </summary> /// <param name="span">周期对象数据</param> /// <param name="spans">所有周期样本</param> /// <param name="CaiData">配置数据对象</param> /// <returns></returns> private string getNextCyclesByNum(NumSpanData span, List <int> spans, CaiConfigData CaiData) { string num = span.num; int avg = span.SpanAvg; int lastp = span.SpanTillNow; List <int> cycles = new List <int>(); for (int i = 3; i < spans.Count; i++) { int cycle = 0; for (int j = 0; j < i - 1; j++) { int currentspan = spans[j]; cycle += currentspan; } int next = avg * i - cycle; next = next - lastp; int cycleMax = CaiData.PeriodPerDay * 2; if (next > 0 && next < cycleMax) { cycles.Add(next); } } cycles = cycles.OrderBy(x => x).ToList(); CaiData.StatusLabel = span.num + " NextCycles Geted!"; return(BizBase.ListToString(cycles, true)); }
/// <summary> /// 获取指定号码的热度趋势 /// </summary> /// <param name="span"></param> /// <param name="CaiData"></param> /// <returns></returns> private NumSpanData getHotTrends(NumSpanData span, CaiConfigData CaiData, List <DwNumber> dtos) { List <int> times = new List <int>(); int max = dtos.Count >= 1008?1008:dtos.Count; for (int i = 0; i < 10; i++) { //按日期推算每一天前的1008期出现的次数 List <DwNumber> list = dtos.GetRange(i * CaiData.PeriodPerDay, max); times.Add(list.Where(x => x.P2 == span.num).ToList().Count); } //判断趋向热 if (times[0] == times.Max() && times[times.Count - 1] == times.Min() && times.Max() - times.Min() >= 3) { span.HotTrend = 1; } else if (times[0] == times.Min() && times[times.Count - 1] == times.Max() && times.Max() - times.Min() >= 3) { span.HotTrend = -1; } else if (times[0] != times.Max() && times[times.Count - 1] != times.Max() && times.Max() - times.Min() >= 3) { span.HotTrend = -1; } else if (times[0] != times.Min() && times[times.Count - 1] != times.Min() && times.Max() - times.Min() >= 3) { span.HotTrend = 1; } else { span.HotTrend = 0; } span.HotRecent = BizBase.ListToString(times); return(span); }