using System; using System.Collections.Generic; using System.Web; using System.Linq; using System.Text; namespace CP.Common { /// <summary> /// 走势图上的工具集合.. /// </summary> public class ZstUtils { #region 快乐扑克3号码形态 /// <summary> /// 快乐扑克3号码形态 /// </summary> /// <param name="kjh"></param> /// <param name="hs"></param> /// <returns></returns> public static string GetTcsdKlpk3Hmxt(List<int> kjh, List<int> hs) { kjh.Sort(); if (hs[0] == hs[1] && hs[1] == hs[2]) { if (Math.Abs(kjh[2] - kjh[1]) == 1 && Math.Abs(kjh[1] - kjh[0]) == 1) return "同花顺"; else return "同花"; } else { if (Math.Abs(kjh[2] - kjh[1]) == 1 && Math.Abs(kjh[1] - kjh[0]) == 1) return "顺子"; else if (kjh[0] == kjh[1] && kjh[1] == kjh[2]) return "豹子"; else if (kjh[0] != kjh[1] && kjh[0] != kjh[2] && kjh[1] != kjh[2]) return "散牌"; else return "对子"; } } #endregion #region 获取山西泳坛夺金组选形态 /// <summary> /// 获取山西泳坛夺金组选形态 /// </summary> /// <param name="kjh"></param> /// <returns>0:组选4(3个号码相同) 1:组选6(2对号码相同) 2:组选12(2个号码相同) 3:组选24(都不相同)</returns> public static int GetYtdjZxxt(List<int> kjh) { Dictionary<int, int> hmCount = new Dictionary<int, int>(); for (var i = 0; i < kjh.Count; i++) { var cur = kjh[i]; for (var j = i + 1; j < kjh.Count; j++) { var hm = kjh[j]; if (hm == cur) { if (hmCount.Keys.Contains(hm)) { hmCount[hm]++; } else { hmCount.Add(hm, 1); } } } } if (hmCount.Count == 0) return 3; else if (hmCount.Count == 1) { if (hmCount.ElementAt(0).Value == 6) return 6; else if (hmCount.ElementAt(0).Value == 3) return 0; else if (hmCount.ElementAt(0).Value == 1) return 2; } return 1; } #endregion #region 大小相关方法 /// <summary> /// 返回大小的状态,需要传中间值,小于中间值为小,大于等于中间值为大。 /// </summary> /// <param name="n"></param> /// <param name="middle"></param> /// <returns></returns> public static int GetDxBymiddle(int n, int middle) { int r = 1; if (n < middle) r = 0; return r; } /// <summary> /// 返回0~9大小的状态 /// 0=小 /// 1=大 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetDx(int n) { return GetDxBymiddle(n, 5); } /// <summary> /// 大小形态 /// </summary> /// <param name="num"></param> /// <param name="istyle"></param> /// <returns></returns> public static string Getdxxt(List<int> kjh, int middle) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (GetDxBymiddle(kjh[i], middle) == 1) result.Append("大"); else result.Append("小"); } return result.ToString(); } /// <summary> /// 大小形态 /// </summary> /// <param name="num"></param> /// <param name="istyle"></param> /// <returns></returns> public static string GetDxxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (kjh[i] > 4) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (kjh[i] > 4) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 大小形态 /// </summary> /// <param name="num"></param> /// <param name="istyle"></param> /// <returns></returns> public static string GetDxxtByMiddle(List<int> kjh, int middle, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (kjh[i] >= middle) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (kjh[i] >= middle) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 返回开奖号的大小形态 /// 如:大大小 /// 有样式 /// </summary> /// <param name="num"></param> /// <returns></returns> public static string GetDxxt(int num, bool istyle = true) { List<int> kjh = GetNumList(num); StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (kjh[i] > 4) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (kjh[i] > 4) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 东方6+1的大小比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetDf61Dxb(List<int> list) { return GetDxb(list, 5); } /// <summary> /// 22选5 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get22x5Dxb(List<int> list) { return GetDxb(list, 12); } /// <summary> /// 25选5 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get25x5Dxb(List<int> list) { return GetDxb(list, 13); } /// <summary> /// 25选5 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get26x5Dxb(List<int> list) { return GetDxb(list, 14); } /// <summary> /// 25选7 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get25x7Dxb(List<int> list) { return GetDxb(list, 13); } /// <summary> /// 24选7 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get24x7Dxb(List<int> list) { return GetDxb(list, 12); } /// <summary> /// 20选5 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get20x5Dxb(List<int> list) { return GetDxb(list, 11); } /// <summary> /// 18x7 大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get18x7Dxb(List<int> list) { return GetDxb(list, 10); } /// <summary> /// 30选5 /// </summary> /// <param name="kjh"></param> /// <param name="istyle"></param> /// <returns></returns> public static string Get30x5Dxxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (GetDxBymiddle(kjh[i], 16) == 1) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (GetDxBymiddle(kjh[i], 12) == 1) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 22选5 大小形态 /// </summary> /// <param name="kjh"></param> /// <param name="istyle"></param> /// <returns></returns> public static string Get22x5Dxxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (GetDxBymiddle(kjh[i], 12) == 1) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (GetDxBymiddle(kjh[i], 12) == 1) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 20选5 大小形态 /// </summary> /// <param name="kjh"></param> /// <param name="istyle"></param> /// <returns></returns> public static string Get20x5Dxxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (GetDxBymiddle(kjh[i], 11) == 1) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (GetDxBymiddle(kjh[i], 11) == 1) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 好彩1大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetHc1Dx(int n) { return GetDxBymiddle(n, 19); } /// <summary> /// 七乐彩大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetQlcDxb(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int d = 0; int x = 0; for (int i = 0; i < kjh.Length; i++) { if (TypeConverter.StrToInt(kjh[i], 0) > 15) d++; else x++; } bz = d.ToString() + ":" + x.ToString(); } return bz; } /// <summary> /// 七乐彩大小比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetQlcDxb(List<int> list) { return GetDxb(list, 16); } /// <summary> /// 7位数和值大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int Get7hwhz(int n) { return GetDxBymiddle(n, 33); } /// <summary> /// 返回p5和值大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetP5HzDx(int n) { return GetDxBymiddle(n, 23); } /// <summary> /// 15x5大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int Get15x5Dx(int n) { return GetDxBymiddle(n, 8); } /// <summary> /// 11选5大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int Get11x5Dx(int n) { return GetDxBymiddle(n, 6); } /// <summary> /// 11选5的大小形态 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get11x5Dxxt(List<int> kjh) { string xt = string.Empty; if (kjh != null && kjh.Count > 0) { foreach (int i in kjh) { if (Get11x5Dx(i) == 1) xt = xt + "大"; else xt = xt + "小"; } } return xt; } /// <summary> /// 七星彩和值大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetQxcHzDx(int n) { return GetDxBymiddle(n, 33); } /// <summary> /// 3D/p3和值大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetHzDx(int n) { return GetDxBymiddle(n, 14); } /// <summary> /// 福建36x7 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetTcfj36x7DXB(List<int> list) { return GetDxb(list, 19); } /// <summary> /// 31x7大小比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetTcfj31x7DXB(List<int> list) { return GetDxb(list, 16); } /// <summary> /// 大乐透后区大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetDltHqDxt(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int d = 0; int x = 0; for (int i = 0; i < kjh.Length; i++) { if (GetDxBymiddle(TypeConverter.StrToInt(kjh[i], 0), 7) == 1) d++; else x++; } bz = d.ToString() + ":" + x.ToString(); } return bz; } /// <summary> /// 大乐透前区大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetDltDxb(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int d = 0; int x = 0; for (int i = 0; i < kjh.Length; i++) { if (GetDxBymiddle(TypeConverter.StrToInt(kjh[i], 0), 18) == 1) d++; else x++; } bz = d.ToString() + ":" + x.ToString(); } return bz; } /// <summary> /// 双色球红球大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetSSqDxb(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int d = 0; int x = 0; for (int i = 0; i < kjh.Length; i++) { if (GetDxBymiddle(TypeConverter.StrToInt(kjh[i], 0), 17) == 1) d++; else x++; } bz = d.ToString() + ":" + x.ToString(); } return bz; } /// <summary> /// 双色球红球大小比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetSsqDxb(List<int> list) { return GetDxb(list, 17); } /// <summary> /// 大乐透前区大小比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetDltDxb(List<int> list) { return GetDxb(list, 18); } /// <summary> /// 15x5大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetHd15x5Dxb(List<int> kjh) { return GetDxb(kjh, 7); } /// <summary> /// 15x5的的大小形态 /// </summary> /// <param name="kjh"></param> /// <param name="istyle"></param> /// <returns></returns> public static string GetHd15x5Dxxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); int size = kjh.Count; for (int i = 0; i < size; i++) { if (istyle) { if (GetDxBymiddle(kjh[i], 8) == 1) result.Append("<span class=\"wz1\">大</span>"); else result.Append("<span class=\"wz2\">小</span>"); } else { if (GetDxBymiddle(kjh[i], 8) == 1) result.Append("大"); else result.Append("小"); } } return result.ToString(); } /// <summary> /// 广东11选5大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetGd11x5Dxb(List<int> kjh) { return GetDxb(kjh, 6); } /// <summary> /// 湖北11选5大小比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetHb11x5Dxb(List<int> kjh) { return GetDxb(kjh, 6); } /// <summary> /// 大小比 /// </summary> /// <param name="kjh">数据</param> /// <param name="middle">中间数</param> /// <returns></returns> public static string GetDxb(List<int> kjh, int middle) { int d = 0; int x = 0; for (int i = 0; i < kjh.Count; i++) { if (GetDxBymiddle(kjh[i], middle) == 1) d++; else x++; } return d.ToString() + ":" + x.ToString(); } /// <summary> /// 旧的大小比方法 /// </summary> /// <param name="num"></param> /// <returns></returns> public static string GetDxb(int num) { List<int> kjh = GetNumList(num); return GetDxb(kjh, 5); } #endregion #region 012路相关方法 /// <summary> /// 返回某个号码的012路形态 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string Get012Xt(List<int> k) { StringBuilder xt = new StringBuilder(); for (int i = 0; i < k.Count; i++) { xt.Append(Get012(k[i])); } return xt.ToString(); } /// <summary> /// 某数字的012路形态 /// 返回 0 1 2 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int Get012(int n) { return n % 3; } /// <summary> /// 获取和尾的 升平降 0:升 1:平 2:降 /// </summary> /// <param name="hw"></param> /// <param name="uphw"></param> /// <param name="i">第几行</param> /// <returns></returns> public static int GetSpj(int hw, int uphw = 0, int i = 0) { if (i == 0) return 1; else { if (hw > uphw) return 0; else if (hw == uphw) return 1; else return 2; } } /// <summary> /// 通用的012个数路比 /// </summary> /// <param name="list"></param> /// <returns></returns> public static string GetCommon012b(List<int> list) { string bz = string.Empty; if (list != null && list.Count > 0) { int a = 0; int b = 0; int c = 0; for (int i = 0; i < list.Count; i++) { if (Get012(list[i]) == 0) a++; if (Get012(list[i]) == 1) b++; if (Get012(list[i]) == 2) c++; } bz = a.ToString() + ":" + b.ToString() + ":" + c.ToString(); } return bz; } /// <summary> /// 取某个开奖号某路的个数 /// 如开奖号258的0路号码个数为0 /// 139的0路号码个数为2 /// </summary> /// <param name="n"></param> /// <param name="kjh"></param> /// <returns></returns> public static int Get012Count(int n, List<int> k) { int count = 0; for (int i = 0; i < k.Count; i++) { if (k[i] % 3 == n) count++; } return count; } #endregion #region 质合相关方法 /// <summary> /// 通用求质合 质合 0为合 1为质(适用0-100) /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetZh(int n) { //0~100 List<int> zs = new List<int> { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97 }; if (zs.Contains(n)) return 1; else return 0; } /// <summary> /// 通用求质合比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetZhb(List<int> kjh) { string bz = string.Empty; if (kjh != null && kjh.Count > 0) { int h = 0; int z = 0; for (int i = 0; i < kjh.Count; i++) { if (GetZh(kjh[i]) == 0) h++; else z++; } bz = z.ToString() + ":" + h.ToString(); } return bz; } /// <summary> /// 通用质合比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetZhb(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int z = 0; int h = 0; for (int i = 0; i < kjh.Length; i++) { if (GetZh(TypeConverter.StrToInt(kjh[i], 0)) == 1) z++; if (GetZh(TypeConverter.StrToInt(kjh[i], 0)) == 0) h++; } bz = z.ToString() + ":" + h.ToString(); } return bz; } /// <summary> /// 质合形态 /// </summary> /// <param name="kjh"></param> /// <param name="istyle"></param> /// <returns></returns> public static string GetZhxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); for (int i = 0; i < kjh.Count; i++) { if (istyle) { if (GetZh(kjh[i]) == 0) result.Append("<span class=\"wz3\">合</span>"); else result.Append("<span class=\"wz4\">质</span>"); } else { if (GetZh(kjh[i]) == 0) result.Append("合"); else result.Append("质"); } } return result.ToString(); } /// <summary> /// 开奖号的质合形态 /// </summary> /// <param name="kjh"></param> /// <param name="istyle">是否带样式输出</param> /// <returns></returns> public static string GetZhxt(int num, bool istyle = true) { List<int> kjh = GetNumList(num); StringBuilder result = new StringBuilder(); for (int i = 0; i < kjh.Count; i++) { if (istyle) { if (GetZh(kjh[i]) == 0) result.Append("<span class=\"wz3\">合</span>"); else result.Append("<span class=\"wz4\">质</span>"); } else { if (GetZh(kjh[i]) == 0) result.Append("合"); else result.Append("质"); } } return result.ToString(); } #endregion #region 奇偶相关方法 /// <summary> /// 返回奇偶状态 /// 0=偶 /// 1=奇 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetJo(int n) { if (n % 2 == 0) return 0; else return 1; } /// <summary> /// 奇偶比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetJob(List<int> kjh) { int j = 0; int o = 0; for (int i = 0; i < kjh.Count; i++) { if (GetJo(kjh[i]) == 0) o++; else j++; } return j.ToString() + ":" + o.ToString(); } /// <summary> /// 奇偶比 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetJob(string[] kjh) { string bz = string.Empty; if (kjh != null && kjh.Length > 0) { int j = 0; int o = 0; for (int i = 0; i < kjh.Length; i++) { if (GetJo(TypeConverter.StrToInt(kjh[i], 0)) == 0) o++; else j++; } bz = j.ToString() + ":" + o.ToString(); } return bz; } /// <summary> /// 奇偶比 /// </summary> /// <param name="num"></param> /// <returns></returns> public static string GetJob(int num) { List<int> kjh = GetNumList(num); return GetJob(kjh); } /// <summary> /// 返回开奖号的奇偶形态 /// 如:奇偶偶 /// </summary> /// <param name="num"></param> /// <param name="istyle">是否带样式输出</param> /// <returns></returns> public static string GetJoxt(int num, bool istyle = true) { List<int> kjh = GetNumList(num); StringBuilder result = new StringBuilder(); for (int i = 0; i < kjh.Count; i++) { if (istyle) { if (GetJo(kjh[i]) == 0) result.Append("<span class=\"wz3\">偶</span>"); else result.Append("<span class=\"wz4\">奇</span>"); } else { if (GetJo(kjh[i]) == 0) result.Append("偶"); else result.Append("奇"); } } return result.ToString(); } /// <summary> /// 奇偶形态 /// </summary> /// <param name="num"></param> /// <param name="istyle"></param> /// <returns></returns> public static string GetJoxt(List<int> kjh, bool istyle = true) { StringBuilder result = new StringBuilder(); for (int i = 0; i < kjh.Count; i++) { if (istyle) { if (GetJo(kjh[i]) == 0) result.Append("<span class=\"wz3\">偶</span>"); else result.Append("<span class=\"wz4\">奇</span>"); } else { if (GetJo(kjh[i]) == 0) result.Append("偶"); else result.Append("奇"); } } return result.ToString(); } /// <summary> /// 返回大乐透后区大小形态,必顺序传入参数 /// </summary> /// <param name="n6"></param> /// <param name="n7"></param> /// <returns></returns> public static string GetDltHqJoxt(int n6, int n7) { string n6jo = "奇"; string n7jo = "奇"; if (n6 % 2 == 0) n6jo = "偶"; if (n7 % 2 == 0) n7jo = "偶"; return (n6jo + n7jo).ToString().Trim(); } #endregion #region 重号/连号个数/连号对数 /// <summary> /// 通用的 /// 计算重号个数 /// </summary> /// <param name="kjh1"></param> /// <param name="kjh2"></param> /// <returns></returns> public static int GetChCount(List<int> kjh1, List<int> kjh2) { return kjh1.Intersect(kjh2).ToList().Count; } /// <summary> /// 广东11选5连号计算 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetGd11x5LhCount(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh != null && kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1] == 1)) c++; } if (kjh[kjh.Count - 1] - kjh[0] == 10) c++; if (c > 0) c = c + 1; } return c; } public static int GetGd11x5LhDsCount(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1) c++; } if (kjh[kjh.Count - 1] - kjh[0] == 10) c++; } return c; } /// <summary> /// 广东11选5前三形态 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetGd11x5Xt(List<int> kjh) { int c = 0; if (kjh != null && kjh.Count > 0) { if (kjh[0] < kjh[1] && kjh[1] < kjh[2]) c = 1; else if (kjh[0] > kjh[1] && kjh[1] > kjh[2]) c = 2; else if (kjh[1] > kjh[0] && kjh[1] > kjh[2]) c = 3; else if (kjh[0] > kjh[1] && kjh[1] < kjh[2]) c = 4; } return c; } /// <summary> /// 通用的 /// 计算连号个数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetLhCount(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh != null && kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1) c++; } if (c > 0) c = c + 1; } return c; } /// <summary> /// 通用的 /// 计算连号个数--高频-新的连号数统计 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static Dictionary<int, int> GetLhCountGp(List<int> _kjh) { Dictionary<int, int> dic = new Dictionary<int, int>(); List<int> kjh = new List<int>(_kjh); if (kjh != null && kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1) { if (dic.Keys.Contains(i - 1)) { dic.Add(i, dic[i - 1] + 1); dic.Remove(i - 1); } else { dic.Add(i, 2);//第i个位置2连 } } } } if (dic.Count == 0) dic.Add(0, 0);//零连号,无连号 return dic; } /// <summary> /// 连号对数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetLhDsCount(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1) c++; } } return c; } /// <summary> /// 双色球连号的对数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetSsqRedLhCount(string[] os) { List<int> kjh = new List<int>(); if (os != null && os.Length > 0) { for (int i = 0; i < os.Length; i++) { kjh.Add(TypeConverter.StrToInt(os[i], 0)); } } return GetLhDsCount(kjh); } #endregion /// <summary> /// 求双色球红球的和值 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetSsqRedHz(string[] kjh) { int hz = 0; if (kjh != null && kjh.Length > 0) { for (int i = 0; i < kjh.Length; i++) { hz = hz + TypeConverter.StrToInt(kjh[i], 0); } } return hz; } /// <summary> /// 返回某蓝球是否属于某个区间 /// </summary> /// <param name="qj"></param> /// <param name="val"></param> /// <returns></returns> public static bool GetSsqBlueSq(int qj, int val) { bool flag = false; List<int> b1 = new List<int> { 1, 2, 3, 4 }; List<int> b2 = new List<int> { 5, 6, 7, 8 }; List<int> b3 = new List<int> { 9, 10, 11, 12 }; List<int> b4 = new List<int> { 13, 14, 15, 16 }; if (qj == 1) return b1.Contains(val); if (qj == 2) return b2.Contains(val); if (qj == 3) return b3.Contains(val); if (qj == 4) return b4.Contains(val); return flag; } /// <summary> /// 得到距离开奖的时间差 /// </summary> /// <param name="nowtime">现在时间</param> /// <param name="kjtime">开奖时间</param> /// <param name="days">过期时间 增加的天数</param> /// <returns>时间差</returns> public static TimeSpan KjTimeDiff(DateTime nowtime, DateTime kjtime) { TimeSpan ts = new TimeSpan(); if (kjtime > nowtime) { TimeSpan ts1 = new TimeSpan(nowtime.Ticks); TimeSpan ts2 = new TimeSpan(kjtime.Ticks); ts = ts1.Subtract(ts2).Duration(); } else { TimeSpan ts1 = new TimeSpan(nowtime.Ticks); TimeSpan ts2 = new TimeSpan(nowtime.Ticks); ts = ts1.Subtract(ts2).Duration(); } return ts; } /// <summary> /// 将日期转换成星期几 /// </summary> /// <param name="date"></param> /// <returns></returns> public static string GetWday(DateTime date) { DateTime dt = date; string wday = ""; switch (dt.DayOfWeek) { case DayOfWeek.Monday: wday = "星期一"; break; case DayOfWeek.Tuesday: wday = "星期二"; break; case DayOfWeek.Wednesday: wday = "星期三"; break; case DayOfWeek.Thursday: wday = "星期四"; break; case DayOfWeek.Friday: wday = "星期五"; break; case DayOfWeek.Saturday: wday = "星期六"; break; case DayOfWeek.Sunday: wday = "星期日"; break; } return wday; } /// <summary> /// 计算出双色球红球中尾数不相同的个数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetSsqRedWsCount(string[] os) { List<int> kjh = new List<int>(); if (os != null && os.Length > 0) { for (int i = 0; i < os.Length; i++) { kjh.Add(TypeConverter.StrToInt(os[i], 0)); } } List<int> wss = new List<int>(); for (int i = 0; i < kjh.Count; i++) { int ws = GetHw(kjh[i]); if (!wss.Contains(ws)) wss.Add(ws); } return wss.Count; } /// <summary> /// 判断两个List int 列表是否有交集数据 /// </summary> /// <param name="list1"></param> /// <param name="list2"></param> /// <returns></returns> public static bool GetNumMix(List<int> list1, List<int> list2) { return list1.Intersect(list2).ToList().Count > 0 ? true : false; } #region 大乐透相关方法 /// <summary> /// 返回大乐透后区奇偶形态,必顺序传入参数 /// </summary> /// <param name="n6"></param> /// <param name="n7"></param> /// <returns></returns> public static string GetDltHqDxxt(int n6, int n7) { string n6dx = "小"; string n7dx = "小"; if (n6 > 6) n6dx = "大"; if (n7 > 6) n7dx = "大"; return (n6dx + n7dx).ToString().Trim(); } #endregion /// <summary> /// 返回某个组三号码里的相同号码 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetZ3Num(int kjh) { string result = string.Empty; List<int> k = GetNumList(kjh); int n = 0; if (k[0] == k[1]) return k[0]; if (k[1] == k[2]) return k[1]; if (k[0] == k[2]) return k[0]; return n; } /// <summary> /// 返回开个开奖号组三形态 /// AAB /// ABA /// BAA /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetZ3Xt(int kjh) { string result = string.Empty; List<int> k = GetNumList(kjh); if (k != null) { if (k[0] == k[1]) result = "AAB"; if (k[1] == k[2]) result = "BAA"; if (k[0] == k[2]) result = "ABA"; } return result; } /// <summary> /// 试机号和开奖号的比较 /// 组选同号 个数 /// </summary> /// <param name="sjh"></param> /// <param name="kjh"></param> /// <returns>0 1 2 3</returns> public static int GetZxth(int sjh, int kjh) { int result = 0; List<int> s = GetNumList(sjh); List<int> k = GetNumList(kjh); for (int i = 0; i < s.Count; i++) { if (k.Contains(s[i])) result++; } return result; } /// <summary> /// 试机号和开奖号的比较 /// 组选同号 个数 /// </summary> /// <param name="sjh"></param> /// <param name="kjh"></param> /// <returns>0 1 2 3</returns> public static int GetZxth(List<int> sjh, List<int> kjh) { int result = 0; for (int i = 0; i < sjh.Count; i++) { if (kjh.Contains(sjh[i])) result++; } return result; } /// <summary> /// 试机号和开奖号的 /// 直选同号比较 /// </summary> /// <param name="sjh"></param> /// <param name="kjh"></param> /// <returns>返回3个长度的list,确认是否同号</returns> public static List<bool> GetZxtw(int sjh, int kjh) { List<bool> list = new List<bool> { false, false, false }; List<int> s = GetNumList(sjh); List<int> k = GetNumList(kjh); for (int i = 0; i < s.Count; i++) { if (k[i] == s[i]) list[i] = true; } return list; } /// <summary> /// 试机号和开奖号的 /// 直选同号比较 /// </summary> /// <param name="sjh"></param> /// <param name="kjh"></param> /// <returns>返回3个长度的list,确认是否同号</returns> public static List<bool> GetZxtw(List<int> sjh, List<int> kjh) { List<bool> list = new List<bool> { false, false, false }; for (int i = 0; i < sjh.Count; i++) { if (kjh[i] == sjh[i]) list[i] = true; } return list; } /// <summary> /// 把某个数字拆分成1 2 3 的形式 /// 如980成9 8 0 /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<int> GetNumList(int num) { //359 List<int> nums = new List<int>(); if (num < 0) { nums.Add(-1); nums.Add(-1); nums.Add(-1); return nums; } int b = num / 100; int s = (num - b * 100) / 10; int g = num - (b * 100 + s * 10); nums.Add(b); nums.Add(s); nums.Add(g); return nums; } /// <summary> /// 15x5是否4连号.. /// 1为true 0为false /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetHd15x5_4lh(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh != null && kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1 && Math.Abs(kjh[i - 1] - kjh[i]) == 1) c++; else if (c < 3) c = 0; } } if (c >= 3) return 1; return 0; } /// <summary> /// 22x5是否3连号.. /// 1为true 0为false /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetIs3lh(List<int> _kjh) { int c = 0; List<int> kjh = new List<int>(_kjh); if (kjh != null && kjh.Count > 0) { kjh.Sort(); for (int i = 0; i < kjh.Count; i++) { if (i > 0 && (kjh[i] - kjh[i - 1]) == 1 && Math.Abs(kjh[i - 1] - kjh[i]) == 1) c++; else if (c < 3) c = 0; } } if (c >= 2) return 1; return 0; } /// <summary> /// 某个开奖号是否连号 /// 145 905这种 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetLh(int num) { string result = "否"; List<int> kds = GetKdList(num); if (kds != null && kds.Count > 0) { for (int i = 0; i < kds.Count; i++) { if (kds[i] == 1 || kds[i] == 9) { result = "是"; return result; } } } return result; } /// <summary> /// 某个开奖号是否是半顺子、顺子 /// 012 045这种 /// </summary> /// <param name="num"></param> /// <returns></returns> public static string GetSZ(int num) { string result = "否"; List<int> kds = GetKdList(num); if (kds != null && kds.Count > 0) { if (kds[0] == 2 && kds[1] == 1 && kds[2] == 1) { result = "顺"; return result; } for (int i = 0; i < kds.Count; i++) { if (kds[i] == 1) { result = "半"; return result; } } } return result; } /// <summary> /// 判断是否有重号,适用3D /// </summary> /// <param name="kjh1"></param> /// <param name="kjh2"></param> /// <returns></returns> public static string GetCh(int num1, int num2) { string result = "否"; List<int> kjh1 = GetNumList(num1); List<int> kjh2 = GetNumList(num2); if (kjh1.Intersect(kjh2).ToList().Count > 0) result = "是"; return result; } /// <summary> /// 返回开奖号对应的组选二码组合 /// /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<string> Get2m(List<int> _kjh) { List<string> list = new List<string>(); List<int> kjh = new List<int>(_kjh); kjh.Sort(); list.Add(kjh[0].ToString() + kjh[1].ToString()); list.Add(kjh[0].ToString() + kjh[2].ToString()); list.Add(kjh[1].ToString() + kjh[2].ToString()); return list; } /// <summary> /// 返回某个开奖号码的区段 /// 返回值 a b c d /// a:000~249 /// b:250~499 /// c:500~749 /// d:750~999 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetQd(int kjh) { string result = string.Empty; if (kjh >= 0 && kjh < 250) result = "A"; if (kjh >= 250 && kjh < 500) result = "B"; if (kjh >= 500 && kjh < 750) result = "C"; if (kjh >= 750 && kjh < 1000) result = "D"; return result; } /// <summary> /// 返回某个开奖号的 /// 升降序组合的情况 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static string GetSjxzh(List<int> nums) { string result = string.Empty; if (nums[0] == nums[1] && nums[1] == nums[2]) //豹子 { result = "平"; return result; } if (nums[0] > nums[1] && nums[1] > nums[2]) { result = "降"; return result; } if (nums[0] < nums[1] && nums[1] < nums[2]) { result = "升"; return result; } if (nums[0] > nums[1] && nums[1] < nums[2]) { result = "凹"; return result; } if (nums[0] < nums[1] && nums[1] > nums[2]) { result = "凸"; return result; } if (nums[0] == nums[1] || nums[1] == nums[2] || nums[0] == nums[2]) //组三 { result = "偏"; return result; } return result; } /// <summary> /// 计算出某个跨度值的数据统计 /// list[0] = 总数 /// list[1] = 组三数 /// list[2] = 组六数 /// list[3] = 豹子数 /// </summary> /// <param name="kd"></param> /// <returns></returns> public static List<int> GetKdCount(int kd, List<int> data) { List<int> list = new List<int>(); List<int> temp = new List<int>(); list.Add(0); list.Add(0); list.Add(0); list.Add(0); for (int i = 0; i < data.Count; i++) { if (GetKd(data[i]) == kd) temp.Add(data[i]); } list[0] = temp.Count; for (int i = 0; i < temp.Count; i++) { if (GetZxxt(temp[i]) == 3) list[1]++; if (GetZxxt(temp[i]) == 6) list[2]++; if (GetZxxt(temp[i]) == 0) list[3]++; } return list; } /// <summary> /// 计算出某个和值号的数据统计 /// list[0] = 总数 /// list[1] = 组三数 /// list[2] = 组六数 /// list[3] = 豹子数 /// </summary> /// <param name="hz"></param> /// <returns></returns> public static List<int> GetHzCount(int hz, List<int> data) { List<int> list = new List<int>(); List<int> temp = new List<int>(); list.Add(0); list.Add(0); list.Add(0); list.Add(0); for (int i = 0; i < data.Count; i++) { if (GetHz(data[i]) == hz) temp.Add(data[i]); } list[0] = temp.Count; for (int i = 0; i < temp.Count; i++) { if (GetZxxt(temp[i]) == 3) list[1]++; if (GetZxxt(temp[i]) == 6) list[2]++; if (GetZxxt(temp[i]) == 0) list[3]++; } return list; } /// <summary> /// 返回某个3位数号码的组选形态 /// </summary> /// <param name="num">158</param> /// <returns></returns> public static int GetZxxt(int num) { List<int> temp = GetNumList(num); return GetZxxt(temp); } /// <summary> /// 组三/组6形态 /// </summary> /// <param name="nums"></param> /// <returns></returns> public static int GetZxxt(List<int> l) { int xt = 0; List<int> temp = new List<int>(l); if (temp[0] == temp[1] && temp[1] == temp[2] && temp[0] == temp[2]) { xt = 0; return xt; } if (temp[0] == temp[1] || temp[1] == temp[2] || temp[0] == temp[2]) { xt = 3; return xt; } if (temp[0] != temp[1] && temp[1] != temp[2] && temp[0] != temp[2]) { xt = 6; return xt; } return xt; } public static int GetKd(List<int> kjh) { List<int> _kjh = new List<int>(kjh); _kjh.Sort(); return Math.Abs(_kjh[0] - _kjh[_kjh.Count - 1]); } /// <summary> /// 根据开奖号获取最大跨度值 /// </summary> /// <param name="kjh">List形式的开奖号</param> /// <returns></returns> public static int GetKd(int num) { List<int> kjh = GetNumList(num); kjh.Sort(); return Math.Abs(kjh[0] - kjh[kjh.Count - 1]); } /// <summary> /// 排序5跨度计算 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static List<int> GetP5KdList(List<int> _kjh) { List<int> kjh = new List<int>(_kjh); kjh.Sort(); List<int> kds = new List<int>(); for (int i = 0; i < kjh.Count; i++) { if (i > 0) kds.Add(Math.Abs(kjh[i] - kjh[i - 1])); } return kds; } /// <summary> /// 取三个跨度 组选 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static List<int> GetKdList(List<int> _kjh) { List<int> kds = new List<int>(); List<int> kjh = new List<int>(_kjh); kjh.Sort(); kds.Add(Math.Abs(kjh[0] - kjh[kjh.Count - 1])); //最大跨度 kds.Add(Math.Abs(kjh[0] - kjh[1])); //1跨 kds.Add(Math.Abs(kjh[1] - kjh[kjh.Count - 1])); //2跨 return kds; } /// <summary> /// 取三个跨度 组选 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static List<int> GetKdList(int num) { List<int> kjh = GetNumList(num); List<int> kds = new List<int>(); kjh.Sort(); kds.Add(Math.Abs(kjh[0] - kjh[kjh.Count - 1])); //最大跨度 kds.Add(Math.Abs(kjh[0] - kjh[1])); //1跨 kds.Add(Math.Abs(kjh[1] - kjh[kjh.Count - 1])); //2跨 return kds; } /// <summary> /// 取百、十、个跨度 直选 [0,1,2] /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static List<int> GetBSGKdList(int num) { List<int> kjh = GetNumList(num); List<int> kds = new List<int>(); kds.Add(Math.Abs(kjh[0] - kjh[1])); //百十 kds.Add(Math.Abs(kjh[1] - kjh[2])); //十个 kds.Add(Math.Abs(kjh[0] - kjh[2])); //百个 return kds; } /// <summary> /// 根据开奖号获取和值 /// </summary> /// <param name="kjh">int形式的开奖号</param> /// <returns></returns> public static int GetHz(int kjh) { List<int> k = GetNumList(kjh); k.Sort(); return k[0] + k[1] + k[2]; } /// <summary> /// 和值 /// </summary> /// <param name="k"></param> /// <returns></returns> public static int GetHz(List<int> k) { return k[0] + k[1] + k[2]; } /// <summary> /// 通用方法.返回012路,指定路数的个数 /// </summary> /// <param name="list"></param> /// <param name="ls"></param> /// <returns></returns> public static int Get012Gs(List<int> list, int ls) { int n = 0; for (int i = 0; i < list.Count; i++) { if (Get012(list[i]) == ls) n++; } return n; } #region P5一些方法 /// <summary> /// p5号码数组 /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<int> GetP5NumList(string num) { List<int> list = new List<int>(); if (num.Trim().Length != 5) return list; for (int i = 0; i < num.Length; i++) { list.Add(TypeConverter.StrToInt(num.Substring(i, 1), 0)); } return list; } /// <summary> /// p5和值 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetP5Hz(string num) { List<int> list = GetP5NumList(num); int hz = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { hz = hz + list[i]; } } return hz; } /// <summary> /// 排列5的连号组数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetP5LhCount(string num) { List<int> list = GetP5NumList(num); int c = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (i > 0 && (list[i] - list[i - 1]) == 1) c++; } } return c; } #endregion #region P7的一些方法 /// <summary> /// p7号码数组 /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<int> GetP7NumList(string num) { List<int> list = new List<int>(); if (num.Trim().Length != 7) return list; for (int i = 0; i < num.Length; i++) { list.Add(TypeConverter.StrToInt(num.Substring(i, 1), 0)); } return list; } /// <summary> /// p7和值 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetP7Hz(string num) { List<int> list = GetP7NumList(num); int hz = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { hz = hz + list[i]; } } return hz; } /// <summary> /// 排列7的连号组数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetP7LhCount(string num) { List<int> list = GetP7NumList(num); int c = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (i > 0 && (list[i] - list[i - 1]) == 1) c++; } } return c; } /// <summary> /// 排列7相同号码的个数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetP7ThCount(string num) { List<int> list = GetP7NumList(num); List<int> th = new List<int>(); List<int> temp = new List<int>(); foreach (int i in list) { if (!th.Contains(i)) { th.Add(i); } else { temp.Add(i); } } list.RemoveAll(o => { if (temp.Contains(o)) return true; else return false; }); return 7 - list.Count(); } #endregion #region 东方61的一些方法 /// <summary> /// df61 /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<int> GetDf61NumList(string num) { List<int> list = new List<int>(); if (num.Trim().Length != 6) return list; for (int i = 0; i < num.Length; i++) { list.Add(TypeConverter.StrToInt(num.Substring(i, 1), 0)); } return list; } /// <summary> /// df61和值 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetDf61Hz(string num) { List<int> list = GetDf61NumList(num); int hz = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { hz = hz + list[i]; } } return hz; } /// <summary> /// df61的连号组数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetDf61LhCount(string num) { List<int> list = GetDf61NumList(num); int c = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (i > 0 && (list[i] - list[i - 1]) == 1) c++; } } return c; } /// <summary> /// df61相同号码的个数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetDf61ThCount(string num) { List<int> list = GetDf61NumList(num); List<int> th = new List<int>(); List<int> temp = new List<int>(); foreach (int i in list) { if (!th.Contains(i)) { th.Add(i); } else { temp.Add(i); } } list.RemoveAll(o => { if (temp.Contains(o)) return true; else return false; }); return 6 - list.Count(); } #endregion #region 浙江6+1 /// <summary> /// zj61 /// </summary> /// <param name="num"></param> /// <returns></returns> public static List<int> GetZj61NumList(string num) { List<int> list = new List<int>(); if (num.Trim().Length != 7) return list; for (int i = 0; i < num.Length; i++) { list.Add(TypeConverter.StrToInt(num.Substring(i, 1), 0)); } return list; } /// <summary> /// zj61和值 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetZj61Hz(string num) { List<int> list = GetZj61NumList(num); int hz = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { hz = hz + list[i]; } } return hz; } /// <summary> /// zj61的连号组数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetZj61LhCount(string num) { List<int> list = GetZj61NumList(num); int c = 0; if (list != null && list.Count > 0) { for (int i = 0; i < list.Count; i++) { if (i > 0 && (list[i] - list[i - 1]) == 1) c++; } } return c; } /// <summary> /// zj61最大相同号码的个数 /// </summary> /// <param name="num"></param> /// <returns></returns> public static int GetZj61ThCount(string num) { List<int> list = GetZj61NumList(num); List<int> th = new List<int>(); int[] temp = new int[10]; for (int i = 0; i < temp.Length; i++) temp[i] = 0; foreach (int i in list) { temp[i]++; } List<int> max = new List<int>(); for (int i = 0; i < temp.Length; i++) { max.Add(temp[i]); } return max.Max(); } #endregion /// <summary> /// 根据和值返回和尾 /// </summary> /// <param name="hz"></param> /// <returns></returns> public static int GetHw(int hz) { int hw = 0; string s = hz.ToString(); if (s.Length == 4) return TypeConverter.StrToInt(s.Substring(3, 1)); if (s.Length == 3) return TypeConverter.StrToInt(s.Substring(2, 1)); if (s.Length == 2) return TypeConverter.StrToInt(s.Substring(1, 1)); if (s.Length == 1) return hz; return hw; } /// <summary> /// 开奖号的尾数和值 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetWshz(List<int> kjh) { int wshz = 0; if (kjh != null && kjh.Count > 0) { for (int i = 0; i < kjh.Count; i++) { wshz = wshz + GetHw(kjh[i]); } } return wshz; } /// <summary> /// 号码中的最大奇数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMaxJs(List<int> kjh) { List<int> temp = new List<int>(); foreach (int i in kjh) { if (i % 2 != 0) temp.Add(i); } if (temp.Count > 0) return temp.Max(); else return -1; } /// <summary> /// 号码中的最小奇数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMinJs(List<int> kjh) { List<int> temp = new List<int>(); foreach (int i in kjh) { if (i % 2 != 0) temp.Add(i); } if (temp.Count > 0) return temp.Min(); else return -1; } /// <summary> /// 号码中的最大偶数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMaxOs(List<int> kjh) { List<int> temp = new List<int>(); foreach (int i in kjh) { if (i % 2 == 0) temp.Add(i); } if (temp.Count > 0) return temp.Max(); else return -1; } /// <summary> /// 号码中的最小偶数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMinOs(List<int> kjh) { List<int> temp = new List<int>(); foreach (int i in kjh) { if (i % 2 == 0) temp.Add(i); } if (temp.Count > 0) return temp.Min(); else return -1; } /// <summary> /// 号码中的最大的质数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMaxZs(List<int> kjh) { List<int> temp = new List<int>(); List<int> data = new List<int> { 0, 4, 6, 8, 9 }; foreach (int i in kjh) { if (!data.Contains(i)) temp.Add(i); } if (temp.Count > 0) return temp.Max(); else return -1; } /// <summary> /// 号码中的最大的质数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMinZs(List<int> kjh) { List<int> temp = new List<int>(); List<int> data = new List<int> { 0, 4, 6, 8, 9 }; foreach (int i in kjh) { if (!data.Contains(i)) temp.Add(i); } if (temp.Count > 0) return temp.Min(); else return -1; } /// <summary> /// 号码中的最大的合数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMaxHs(List<int> kjh) { List<int> temp = new List<int>(); List<int> data = new List<int> { 0, 4, 6, 8, 9 }; foreach (int i in kjh) { if (data.Contains(i)) temp.Add(i); } if (temp.Count > 0) return temp.Max(); else return -1; } /// <summary> /// 号码中的最小的合数 /// </summary> /// <param name="kjh"></param> /// <returns></returns> public static int GetMinHs(List<int> kjh) { List<int> temp = new List<int>(); List<int> data = new List<int> { 0, 4, 6, 8, 9 }; foreach (int i in kjh) { if (data.Contains(i)) temp.Add(i); } if (temp.Count > 0) return temp.Min(); else return -1; } /// <summary> /// 将string kjh转换成int kjh /// </summary> /// <param name="str"></param> /// <returns></returns> public static List<int> ConvertList(List<string> kjh) { List<int> list = new List<int>(); if (kjh == null || kjh.Count == 0) return list; foreach (string s in kjh) { list.Add(TypeConverter.ObjectToInt(s, -1)); } return list; } #region 广东好彩1相关 /// <summary> /// 返回好彩1季节说明 /// </summary> /// <param name="n"></param> /// <returns></returns> public static string GetJiJie(int n) { string result = string.Empty; if (n > 0 && n < 10) result = "春"; if (n > 9 && n < 19) result = "夏"; if (n > 18 && n < 28) result = "秋"; if (n > 27) result = "冬"; return result; } /// <summary> /// 方位 /// </summary> /// <param name="n"></param> /// <returns></returns> public static string GetFangWei(int n) { string result = string.Empty; List<int> fd = new List<int> { 1, 3, 5, 7, 9, 11, 13, 15, 17 }; List<int> fn = new List<int> { 2, 4, 6, 8, 10, 12, 14, 16, 18 }; List<int> fx = new List<int> { 19, 21, 23, 25, 27, 29, 31, 33, 35 }; List<int> fb = new List<int> { 20, 22, 24, 26, 28, 30, 32, 34, 36 }; if (fd.Contains(n)) result = "东"; if (fn.Contains(n)) result = "南"; if (fx.Contains(n)) result = "西"; if (fb.Contains(n)) result = "北"; return result; } /// <summary> /// 生肖 /// </summary> /// <param name="n"></param> public static string GetShengXiao(int n) { string result = string.Empty; List<int> s1 = new List<int> { 1, 13, 25 }; List<int> s2 = new List<int> { 2, 14, 26 }; List<int> s3 = new List<int> { 3, 15, 27 }; List<int> s4 = new List<int> { 4, 16, 28 }; List<int> s5 = new List<int> { 5, 17, 29 }; List<int> s6 = new List<int> { 6, 18, 30 }; List<int> s7 = new List<int> { 7, 19, 31 }; List<int> s8 = new List<int> { 8, 20, 32 }; List<int> s9 = new List<int> { 9, 21, 33 }; List<int> s10 = new List<int> { 10, 22, 34 }; List<int> s11 = new List<int> { 11, 23, 35 }; List<int> s12 = new List<int> { 12, 24, 36 }; if (s1.Contains(n)) return "鼠"; if (s2.Contains(n)) return "牛"; if (s3.Contains(n)) return "虎"; if (s4.Contains(n)) return "兔"; if (s5.Contains(n)) return "龙"; if (s6.Contains(n)) return "蛇"; if (s7.Contains(n)) return "马"; if (s8.Contains(n)) return "羊"; if (s9.Contains(n)) return "猴"; if (s10.Contains(n)) return "鸡"; if (s11.Contains(n)) return "狗"; if (s12.Contains(n)) return "猪"; return result; } #endregion #region 香港彩相关 static int[] Bs_red = { 1, 2, 7, 8, 12, 13, 18, 19, 23, 24, 29, 30, 34, 35, 40, 45, 46 }; static int[] Bs_blue = { 3, 4, 9, 10, 14, 15, 20, 25, 26, 31, 36, 37, 41, 42, 47, 48 }; static int[] Bs_green = { 5, 6, 11, 16, 17, 21, 22, 27, 28, 32, 33, 38, 39, 43, 44, 49 }; /// <summary> /// 获取当前号码的波色 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumBoSe(int n) { if (Bs_red.Contains(n)) { return 0;// "红"; } else if (Bs_blue.Contains(n)) { return 1;// "蓝"; } else { return 2;// "绿"; } } /// <summary> /// 获取当前号码的半波色 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumBBoSe(int n) { if (Bs_red.Contains(n) && n % 2 == 1) { return 0;// "红单"; } else if (Bs_red.Contains(n) && n % 2 == 0) { return 3;// "红双"; } else if (Bs_blue.Contains(n) && n % 2 == 1) { return 1;// "蓝单"; } else if (Bs_blue.Contains(n) && n % 2 == 0) { return 4;// "蓝双"; } else if (Bs_green.Contains(n) && n % 2 == 1) { return 2;// "绿单"; } else { return 5;// "绿双"; } } /// <summary> /// 特码单双 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumTmds(int n) { if (n % 2 == 1) { return 0;// "单"; } else { return 1;// "双"; } } /// <summary> /// 特头单双 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumTtds(int n) { if (n / 10 == 0 || n / 10 % 2 == 0) { return 1;// "双"; } else { return 0;// "单"; } } /// <summary> /// 特头单双(特码头数走势图) /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumtmttds(int n) { if (n / 10 == 0 || n / 10 % 2 == 0) { return 0;// "双"; } else { return 1;// "单"; } } /// <summary> /// 特尾大小 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumtmtwdx(int n) { if (n % 10 < 5) { return 0;// "小"; } else { return 1;// "大"; } } /// <summary> /// 合数单双 /// </summary> /// <param name="n"></param> /// <returns></returns> public static int GetNumHsds(int n) { if (n / 10 == 0 || n / 10 % 2 == 0) { return 1;// "双"; } else { return 0;// "单"; } } #endregion } }