using System;
using System.Collections.Generic;
using System.Web;
using System.Linq;
using System.Text;
namespace CP.Common
{
///
/// 走势图上的工具集合..
///
public class ZstUtils
{
#region 快乐扑克3号码形态
///
/// 快乐扑克3号码形态
///
///
///
///
public static string GetTcsdKlpk3Hmxt(List kjh, List 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 获取山西泳坛夺金组选形态
///
/// 获取山西泳坛夺金组选形态
///
///
/// 0:组选4(3个号码相同) 1:组选6(2对号码相同) 2:组选12(2个号码相同) 3:组选24(都不相同)
public static int GetYtdjZxxt(List kjh)
{
Dictionary hmCount = new Dictionary();
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 大小相关方法
///
/// 返回大小的状态,需要传中间值,小于中间值为小,大于等于中间值为大。
///
///
///
///
public static int GetDxBymiddle(int n, int middle)
{
int r = 1;
if (n < middle)
r = 0;
return r;
}
///
/// 返回0~9大小的状态
/// 0=小
/// 1=大
///
///
///
public static int GetDx(int n)
{
return GetDxBymiddle(n, 5);
}
///
/// 大小形态
///
///
///
///
public static string Getdxxt(List 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();
}
///
/// 大小形态
///
///
///
///
public static string GetDxxt(List 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("大");
else
result.Append("小");
}
else
{
if (kjh[i] > 4)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 大小形态
///
///
///
///
public static string GetDxxtByMiddle(List 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("大");
else
result.Append("小");
}
else
{
if (kjh[i] >= middle)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 返回开奖号的大小形态
/// 如:大大小
/// 有样式
///
///
///
public static string GetDxxt(int num, bool istyle = true)
{
List 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("大");
else
result.Append("小");
}
else
{
if (kjh[i] > 4)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 东方6+1的大小比
///
///
///
public static string GetDf61Dxb(List list)
{
return GetDxb(list, 5);
}
///
/// 22选5 大小比
///
///
///
public static string Get22x5Dxb(List list)
{
return GetDxb(list, 12);
}
///
/// 25选5 大小比
///
///
///
public static string Get25x5Dxb(List list)
{
return GetDxb(list, 13);
}
///
/// 25选5 大小比
///
///
///
public static string Get26x5Dxb(List list)
{
return GetDxb(list, 14);
}
///
/// 25选7 大小比
///
///
///
public static string Get25x7Dxb(List list)
{
return GetDxb(list, 13);
}
///
/// 24选7 大小比
///
///
///
public static string Get24x7Dxb(List list)
{
return GetDxb(list, 12);
}
///
/// 20选5 大小比
///
///
///
public static string Get20x5Dxb(List list)
{
return GetDxb(list, 11);
}
///
/// 18x7 大小比
///
///
///
public static string Get18x7Dxb(List list)
{
return GetDxb(list, 10);
}
///
/// 30选5
///
///
///
///
public static string Get30x5Dxxt(List 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("大");
else
result.Append("小");
}
else
{
if (GetDxBymiddle(kjh[i], 12) == 1)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 22选5 大小形态
///
///
///
///
public static string Get22x5Dxxt(List 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("大");
else
result.Append("小");
}
else
{
if (GetDxBymiddle(kjh[i], 12) == 1)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 20选5 大小形态
///
///
///
///
public static string Get20x5Dxxt(List 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("大");
else
result.Append("小");
}
else
{
if (GetDxBymiddle(kjh[i], 11) == 1)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 好彩1大小
///
///
///
public static int GetHc1Dx(int n)
{
return GetDxBymiddle(n, 19);
}
///
/// 七乐彩大小比
///
///
///
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;
}
///
/// 七乐彩大小比
///
///
///
public static string GetQlcDxb(List list)
{
return GetDxb(list, 16);
}
///
/// 7位数和值大小
///
///
///
public static int Get7hwhz(int n)
{
return GetDxBymiddle(n, 33);
}
///
/// 返回p5和值大小
///
///
///
public static int GetP5HzDx(int n)
{
return GetDxBymiddle(n, 23);
}
///
/// 15x5大小
///
///
///
public static int Get15x5Dx(int n)
{
return GetDxBymiddle(n, 8);
}
///
/// 11选5大小
///
///
///
public static int Get11x5Dx(int n)
{
return GetDxBymiddle(n, 6);
}
///
/// 11选5的大小形态
///
///
///
public static string Get11x5Dxxt(List 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;
}
///
/// 七星彩和值大小
///
///
///
public static int GetQxcHzDx(int n)
{
return GetDxBymiddle(n, 33);
}
///
/// 3D/p3和值大小
///
///
///
public static int GetHzDx(int n)
{
return GetDxBymiddle(n, 14);
}
///
/// 福建36x7
///
///
///
public static string GetTcfj36x7DXB(List list)
{
return GetDxb(list, 19);
}
///
/// 31x7大小比
///
///
///
public static string GetTcfj31x7DXB(List list)
{
return GetDxb(list, 16);
}
///
/// 大乐透后区大小比
///
///
///
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;
}
///
/// 大乐透前区大小比
///
///
///
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;
}
///
/// 双色球红球大小比
///
///
///
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;
}
///
/// 双色球红球大小比
///
///
///
public static string GetSsqDxb(List list)
{
return GetDxb(list, 17);
}
///
/// 大乐透前区大小比
///
///
///
public static string GetDltDxb(List list)
{
return GetDxb(list, 18);
}
///
/// 15x5大小比
///
///
///
public static string GetHd15x5Dxb(List kjh)
{
return GetDxb(kjh, 7);
}
///
/// 15x5的的大小形态
///
///
///
///
public static string GetHd15x5Dxxt(List 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("大");
else
result.Append("小");
}
else
{
if (GetDxBymiddle(kjh[i], 8) == 1)
result.Append("大");
else
result.Append("小");
}
}
return result.ToString();
}
///
/// 广东11选5大小比
///
///
///
public static string GetGd11x5Dxb(List kjh)
{
return GetDxb(kjh, 6);
}
///
/// 湖北11选5大小比
///
///
///
public static string GetHb11x5Dxb(List kjh)
{
return GetDxb(kjh, 6);
}
///
/// 大小比
///
/// 数据
/// 中间数
///
public static string GetDxb(List 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();
}
///
/// 旧的大小比方法
///
///
///
public static string GetDxb(int num)
{
List kjh = GetNumList(num);
return GetDxb(kjh, 5);
}
#endregion
#region 012路相关方法
///
/// 返回某个号码的012路形态
///
///
///
public static string Get012Xt(List k)
{
StringBuilder xt = new StringBuilder();
for (int i = 0; i < k.Count; i++)
{
xt.Append(Get012(k[i]));
}
return xt.ToString();
}
///
/// 某数字的012路形态
/// 返回 0 1 2
///
///
///
public static int Get012(int n)
{
return n % 3;
}
///
/// 获取和尾的 升平降 0:升 1:平 2:降
///
///
///
/// 第几行
///
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;
}
}
///
/// 通用的012个数路比
///
///
///
public static string GetCommon012b(List 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;
}
///
/// 取某个开奖号某路的个数
/// 如开奖号258的0路号码个数为0
/// 139的0路号码个数为2
///
///
///
///
public static int Get012Count(int n, List k)
{
int count = 0;
for (int i = 0; i < k.Count; i++)
{
if (k[i] % 3 == n)
count++;
}
return count;
}
#endregion
#region 质合相关方法
///
/// 通用求质合 质合 0为合 1为质(适用0-100)
///
///
///
public static int GetZh(int n)
{
//0~100
List zs = new List { 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;
}
///
/// 通用求质合比
///
///
///
public static string GetZhb(List 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;
}
///
/// 通用质合比
///
///
///
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;
}
///
/// 质合形态
///
///
///
///
public static string GetZhxt(List 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("合");
else
result.Append("质");
}
else
{
if (GetZh(kjh[i]) == 0)
result.Append("合");
else
result.Append("质");
}
}
return result.ToString();
}
///
/// 开奖号的质合形态
///
///
/// 是否带样式输出
///
public static string GetZhxt(int num, bool istyle = true)
{
List kjh = GetNumList(num);
StringBuilder result = new StringBuilder();
for (int i = 0; i < kjh.Count; i++)
{
if (istyle)
{
if (GetZh(kjh[i]) == 0)
result.Append("合");
else
result.Append("质");
}
else
{
if (GetZh(kjh[i]) == 0)
result.Append("合");
else
result.Append("质");
}
}
return result.ToString();
}
#endregion
#region 奇偶相关方法
///
/// 返回奇偶状态
/// 0=偶
/// 1=奇
///
///
///
public static int GetJo(int n)
{
if (n % 2 == 0)
return 0;
else
return 1;
}
///
/// 奇偶比
///
///
///
public static string GetJob(List 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();
}
///
/// 奇偶比
///
///
///
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;
}
///
/// 奇偶比
///
///
///
public static string GetJob(int num)
{
List kjh = GetNumList(num);
return GetJob(kjh);
}
///
/// 返回开奖号的奇偶形态
/// 如:奇偶偶
///
///
/// 是否带样式输出
///
public static string GetJoxt(int num, bool istyle = true)
{
List kjh = GetNumList(num);
StringBuilder result = new StringBuilder();
for (int i = 0; i < kjh.Count; i++)
{
if (istyle)
{
if (GetJo(kjh[i]) == 0)
result.Append("偶");
else
result.Append("奇");
}
else
{
if (GetJo(kjh[i]) == 0)
result.Append("偶");
else
result.Append("奇");
}
}
return result.ToString();
}
///
/// 奇偶形态
///
///
///
///
public static string GetJoxt(List 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("偶");
else
result.Append("奇");
}
else
{
if (GetJo(kjh[i]) == 0)
result.Append("偶");
else
result.Append("奇");
}
}
return result.ToString();
}
///
/// 返回大乐透后区大小形态,必顺序传入参数
///
///
///
///
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 重号/连号个数/连号对数
///
/// 通用的
/// 计算重号个数
///
///
///
///
public static int GetChCount(List kjh1, List kjh2)
{
return kjh1.Intersect(kjh2).ToList().Count;
}
///
/// 广东11选5连号计算
///
///
///
public static int GetGd11x5LhCount(List _kjh)
{
int c = 0;
List kjh = new List(_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 _kjh)
{
int c = 0;
List kjh = new List(_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;
}
///
/// 广东11选5前三形态
///
///
///
public static int GetGd11x5Xt(List 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;
}
///
/// 通用的
/// 计算连号个数
///
///
///
public static int GetLhCount(List _kjh)
{
int c = 0;
List kjh = new List(_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;
}
///
/// 通用的
/// 计算连号个数--高频-新的连号数统计
///
///
///
public static Dictionary GetLhCountGp(List _kjh)
{
Dictionary dic = new Dictionary();
List kjh = new List(_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;
}
///
/// 连号对数
///
///
///
public static int GetLhDsCount(List _kjh)
{
int c = 0;
List kjh = new List(_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;
}
///
/// 双色球连号的对数
///
///
///
public static int GetSsqRedLhCount(string[] os)
{
List kjh = new List();
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
///
/// 求双色球红球的和值
///
///
///
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;
}
///
/// 返回某蓝球是否属于某个区间
///
///
///
///
public static bool GetSsqBlueSq(int qj, int val)
{
bool flag = false;
List b1 = new List { 1, 2, 3, 4 };
List b2 = new List { 5, 6, 7, 8 };
List b3 = new List { 9, 10, 11, 12 };
List b4 = new List { 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;
}
///
/// 得到距离开奖的时间差
///
/// 现在时间
/// 开奖时间
/// 过期时间 增加的天数
/// 时间差
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;
}
///
/// 将日期转换成星期几
///
///
///
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;
}
///
/// 计算出双色球红球中尾数不相同的个数
///
///
///
public static int GetSsqRedWsCount(string[] os)
{
List kjh = new List();
if (os != null && os.Length > 0)
{
for (int i = 0; i < os.Length; i++)
{
kjh.Add(TypeConverter.StrToInt(os[i], 0));
}
}
List wss = new List();
for (int i = 0; i < kjh.Count; i++)
{
int ws = GetHw(kjh[i]);
if (!wss.Contains(ws))
wss.Add(ws);
}
return wss.Count;
}
///
/// 判断两个List int 列表是否有交集数据
///
///
///
///
public static bool GetNumMix(List list1, List list2)
{
return list1.Intersect(list2).ToList().Count > 0 ? true : false;
}
#region 大乐透相关方法
///
/// 返回大乐透后区奇偶形态,必顺序传入参数
///
///
///
///
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
///
/// 返回某个组三号码里的相同号码
///
///
///
public static int GetZ3Num(int kjh)
{
string result = string.Empty;
List 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;
}
///
/// 返回开个开奖号组三形态
/// AAB
/// ABA
/// BAA
///
///
///
public static string GetZ3Xt(int kjh)
{
string result = string.Empty;
List 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;
}
///
/// 试机号和开奖号的比较
/// 组选同号 个数
///
///
///
/// 0 1 2 3
public static int GetZxth(int sjh, int kjh)
{
int result = 0;
List s = GetNumList(sjh);
List k = GetNumList(kjh);
for (int i = 0; i < s.Count; i++)
{
if (k.Contains(s[i]))
result++;
}
return result;
}
///
/// 试机号和开奖号的比较
/// 组选同号 个数
///
///
///
/// 0 1 2 3
public static int GetZxth(List sjh, List kjh)
{
int result = 0;
for (int i = 0; i < sjh.Count; i++)
{
if (kjh.Contains(sjh[i]))
result++;
}
return result;
}
///
/// 试机号和开奖号的
/// 直选同号比较
///
///
///
/// 返回3个长度的list,确认是否同号
public static List GetZxtw(int sjh, int kjh)
{
List list = new List { false, false, false };
List s = GetNumList(sjh);
List k = GetNumList(kjh);
for (int i = 0; i < s.Count; i++)
{
if (k[i] == s[i])
list[i] = true;
}
return list;
}
///
/// 试机号和开奖号的
/// 直选同号比较
///
///
///
/// 返回3个长度的list,确认是否同号
public static List GetZxtw(List sjh, List kjh)
{
List list = new List { false, false, false };
for (int i = 0; i < sjh.Count; i++)
{
if (kjh[i] == sjh[i])
list[i] = true;
}
return list;
}
///
/// 把某个数字拆分成1 2 3 的形式
/// 如980成9 8 0
///
///
///
public static List GetNumList(int num)
{
//359
List nums = new List();
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;
}
///
/// 15x5是否4连号..
/// 1为true 0为false
///
///
///
public static int GetHd15x5_4lh(List _kjh)
{
int c = 0;
List kjh = new List(_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;
}
///
/// 22x5是否3连号..
/// 1为true 0为false
///
///
///
public static int GetIs3lh(List _kjh)
{
int c = 0;
List kjh = new List(_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;
}
///
/// 某个开奖号是否连号
/// 145 905这种
///
///
///
public static string GetLh(int num)
{
string result = "否";
List 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;
}
///
/// 某个开奖号是否是半顺子、顺子
/// 012 045这种
///
///
///
public static string GetSZ(int num)
{
string result = "否";
List 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;
}
///
/// 判断是否有重号,适用3D
///
///
///
///
public static string GetCh(int num1, int num2)
{
string result = "否";
List kjh1 = GetNumList(num1);
List kjh2 = GetNumList(num2);
if (kjh1.Intersect(kjh2).ToList().Count > 0)
result = "是";
return result;
}
///
/// 返回开奖号对应的组选二码组合
///
///
///
///
public static List Get2m(List _kjh)
{
List list = new List();
List kjh = new List(_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;
}
///
/// 返回某个开奖号码的区段
/// 返回值 a b c d
/// a:000~249
/// b:250~499
/// c:500~749
/// d:750~999
///
///
///
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;
}
///
/// 返回某个开奖号的
/// 升降序组合的情况
///
///
///
public static string GetSjxzh(List 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;
}
///
/// 计算出某个跨度值的数据统计
/// list[0] = 总数
/// list[1] = 组三数
/// list[2] = 组六数
/// list[3] = 豹子数
///
///
///
public static List GetKdCount(int kd, List data)
{
List list = new List();
List temp = new List();
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;
}
///
/// 计算出某个和值号的数据统计
/// list[0] = 总数
/// list[1] = 组三数
/// list[2] = 组六数
/// list[3] = 豹子数
///
///
///
public static List GetHzCount(int hz, List data)
{
List list = new List();
List temp = new List();
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;
}
///
/// 返回某个3位数号码的组选形态
///
/// 158
///
public static int GetZxxt(int num)
{
List temp = GetNumList(num);
return GetZxxt(temp);
}
///
/// 组三/组6形态
///
///
///
public static int GetZxxt(List l)
{
int xt = 0;
List temp = new List(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 kjh)
{
List _kjh = new List(kjh);
_kjh.Sort();
return Math.Abs(_kjh[0] - _kjh[_kjh.Count - 1]);
}
///
/// 根据开奖号获取最大跨度值
///
/// List形式的开奖号
///
public static int GetKd(int num)
{
List kjh = GetNumList(num);
kjh.Sort();
return Math.Abs(kjh[0] - kjh[kjh.Count - 1]);
}
///
/// 排序5跨度计算
///
///
///
public static List GetP5KdList(List _kjh)
{
List kjh = new List(_kjh);
kjh.Sort();
List kds = new List();
for (int i = 0; i < kjh.Count; i++)
{
if (i > 0)
kds.Add(Math.Abs(kjh[i] - kjh[i - 1]));
}
return kds;
}
///
/// 取三个跨度 组选
///
///
///
public static List GetKdList(List _kjh)
{
List kds = new List();
List kjh = new List(_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;
}
///
/// 取三个跨度 组选
///
///
///
public static List GetKdList(int num)
{
List kjh = GetNumList(num);
List kds = new List();
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;
}
///
/// 取百、十、个跨度 直选 [0,1,2]
///
///
///
public static List GetBSGKdList(int num)
{
List kjh = GetNumList(num);
List kds = new List();
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;
}
///
/// 根据开奖号获取和值
///
/// int形式的开奖号
///
public static int GetHz(int kjh)
{
List k = GetNumList(kjh);
k.Sort();
return k[0] + k[1] + k[2];
}
///
/// 和值
///
///
///
public static int GetHz(List k)
{
return k[0] + k[1] + k[2];
}
///
/// 通用方法.返回012路,指定路数的个数
///
///
///
///
public static int Get012Gs(List list, int ls)
{
int n = 0;
for (int i = 0; i < list.Count; i++)
{
if (Get012(list[i]) == ls)
n++;
}
return n;
}
#region P5一些方法
///
/// p5号码数组
///
///
///
public static List GetP5NumList(string num)
{
List list = new List();
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;
}
///
/// p5和值
///
///
///
public static int GetP5Hz(string num)
{
List 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;
}
///
/// 排列5的连号组数
///
///
///
public static int GetP5LhCount(string num)
{
List 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的一些方法
///
/// p7号码数组
///
///
///
public static List GetP7NumList(string num)
{
List list = new List();
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;
}
///
/// p7和值
///
///
///
public static int GetP7Hz(string num)
{
List 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;
}
///
/// 排列7的连号组数
///
///
///
public static int GetP7LhCount(string num)
{
List 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;
}
///
/// 排列7相同号码的个数
///
///
///
public static int GetP7ThCount(string num)
{
List list = GetP7NumList(num);
List th = new List();
List temp = new List();
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的一些方法
///
/// df61
///
///
///
public static List GetDf61NumList(string num)
{
List list = new List();
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;
}
///
/// df61和值
///
///
///
public static int GetDf61Hz(string num)
{
List 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;
}
///
/// df61的连号组数
///
///
///
public static int GetDf61LhCount(string num)
{
List 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;
}
///
/// df61相同号码的个数
///
///
///
public static int GetDf61ThCount(string num)
{
List list = GetDf61NumList(num);
List th = new List();
List temp = new List();
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
///
/// zj61
///
///
///
public static List GetZj61NumList(string num)
{
List list = new List();
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;
}
///
/// zj61和值
///
///
///
public static int GetZj61Hz(string num)
{
List 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;
}
///
/// zj61的连号组数
///
///
///
public static int GetZj61LhCount(string num)
{
List 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;
}
///
/// zj61最大相同号码的个数
///
///
///
public static int GetZj61ThCount(string num)
{
List list = GetZj61NumList(num);
List th = new List();
int[] temp = new int[10];
for (int i = 0; i < temp.Length; i++)
temp[i] = 0;
foreach (int i in list)
{
temp[i]++;
}
List max = new List();
for (int i = 0; i < temp.Length; i++)
{
max.Add(temp[i]);
}
return max.Max();
}
#endregion
///
/// 根据和值返回和尾
///
///
///
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;
}
///
/// 开奖号的尾数和值
///
///
///
public static int GetWshz(List 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;
}
///
/// 号码中的最大奇数
///
///
///
public static int GetMaxJs(List kjh)
{
List temp = new List();
foreach (int i in kjh)
{
if (i % 2 != 0)
temp.Add(i);
}
if (temp.Count > 0)
return temp.Max();
else
return -1;
}
///
/// 号码中的最小奇数
///
///
///
public static int GetMinJs(List kjh)
{
List temp = new List();
foreach (int i in kjh)
{
if (i % 2 != 0)
temp.Add(i);
}
if (temp.Count > 0)
return temp.Min();
else
return -1;
}
///
/// 号码中的最大偶数
///
///
///
public static int GetMaxOs(List kjh)
{
List temp = new List();
foreach (int i in kjh)
{
if (i % 2 == 0)
temp.Add(i);
}
if (temp.Count > 0)
return temp.Max();
else
return -1;
}
///
/// 号码中的最小偶数
///
///
///
public static int GetMinOs(List kjh)
{
List temp = new List();
foreach (int i in kjh)
{
if (i % 2 == 0)
temp.Add(i);
}
if (temp.Count > 0)
return temp.Min();
else
return -1;
}
///
/// 号码中的最大的质数
///
///
///
public static int GetMaxZs(List kjh)
{
List temp = new List();
List data = new List { 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;
}
///
/// 号码中的最大的质数
///
///
///
public static int GetMinZs(List kjh)
{
List temp = new List();
List data = new List { 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;
}
///
/// 号码中的最大的合数
///
///
///
public static int GetMaxHs(List kjh)
{
List temp = new List();
List data = new List { 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;
}
///
/// 号码中的最小的合数
///
///
///
public static int GetMinHs(List kjh)
{
List temp = new List();
List data = new List { 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;
}
///
/// 将string kjh转换成int kjh
///
///
///
public static List ConvertList(List kjh)
{
List list = new List();
if (kjh == null || kjh.Count == 0)
return list;
foreach (string s in kjh)
{
list.Add(TypeConverter.ObjectToInt(s, -1));
}
return list;
}
#region 广东好彩1相关
///
/// 返回好彩1季节说明
///
///
///
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;
}
///
/// 方位
///
///
///
public static string GetFangWei(int n)
{
string result = string.Empty;
List fd = new List { 1, 3, 5, 7, 9, 11, 13, 15, 17 };
List fn = new List { 2, 4, 6, 8, 10, 12, 14, 16, 18 };
List fx = new List { 19, 21, 23, 25, 27, 29, 31, 33, 35 };
List fb = new List { 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;
}
///
/// 生肖
///
///
public static string GetShengXiao(int n)
{
string result = string.Empty;
List s1 = new List { 1, 13, 25 };
List s2 = new List { 2, 14, 26 };
List s3 = new List { 3, 15, 27 };
List s4 = new List { 4, 16, 28 };
List s5 = new List { 5, 17, 29 };
List s6 = new List { 6, 18, 30 };
List s7 = new List { 7, 19, 31 };
List