C# 流水号、顺序号(范围001-ZZZ,31进制,0-9,B-Z,26个字母去除A/E/I/O/U)

               string liushuihao = string.Empty;
                string liushuihao1 = string.Empty;

              //判断是否为某什么,如果是,则修改他的流水号规则,变成新的流水号,改最后三位数
                if (app.SplitBoxInfoData.Name == "TX")
                {

                    int length = app.SplitInfoData.OldLiushuihao.Length;
                    int maxnum = 46655;

                    //ZZZ开始直到001结束
                    for (long i = 46655; i >= 1; i--)
                    {

                         //36进制,返回的数不够就左边补0
                        string num= DBcode.ConvertTo36(i).PadLeft(3, '0');

                        //如果包含A/E/I/O/U,就continue
                        if (num.Contains("A") || num.Contains("E") || num.Contains("I") || num.Contains("O") || num.Contains("U"))
                        {
                            continue;

                        }
                     
                        liushuihao1 = app.SplitInfoData.OldLiushuihao.Substring(0, 11) + num; //选择前11位数+三位新的数

                        LiuShuihao  b = comm.Get_Liushuihao(app.SplitInfoData.POID, liushuihao1);
                        LiuShuihao L = comm.GetLiushuihao(liushuihao1);

                       //判断流水号有没有被使用,没被使用就赋值,然后break;如果有继续循环
                        if (b == null && L == null)
                        {
                            liushuihao= liushuihao1;
                            break;
                        }
                   
                    }

 

 

 

pulic class DBcode()

{

         public static string ConvertTo36(long i)
        {
            string s = "";
            long j = 0;
            while (i >= 36)
            {
                j = i % 36;
                if (j < 10)
                    s += j.ToString();
                else
                    s += Convert.ToChar(j + 87);
                i = i / 36;
            }
            if (i < 10)
                s += i.ToString();
            else
                s += Convert.ToChar(i + 87);
            Char[] c = s.ToCharArray();
            Array.Reverse(c);
            return Convert.ToString(new string(c)).ToUpper();
        }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值