C#如何生成唯一订单号
本文实例为大家分享了C#生成唯一订单号的具体代码,供大家参考,具体内容如下
根据GUID+DateTime.Now.Ticks生产唯一订单号
//////生成唯一数 /// publicclassUniqueData { privatestaticobjectobj=newobject(); privatestaticintGuidInt{get{returnGuid.NewGuid().GetHashCode();}} privatestaticstringGuidIntStr{get{returnMath.Abs(GuidInt).ToString();}} //////生成 /// ///前缀 /// 时间精确类型1日,2时,3分,4秒(默认) /// id小于或等于0则随机生成id /// publicstaticstringGener(stringmark,inttimeType=4,intid=0) { lock(obj) { varnumber=mark; varticks=(DateTime.Now.Ticks-GuidInt).ToString(); intfillCount=0;//填充位数 number+=GetTimeStr(timeType,outfillCount); if(id>0) { number+=ticks.Substring(ticks.Length-(fillCount+3))+id.ToString().PadLeft(10,'0'); } else { number+=ticks.Substring(ticks.Length-(fillCount+3))+GuidIntStr.PadLeft(10,'0'); } returnnumber; } } /// ///生成 /// ///前缀 /// 时间精确类型1日,2时,3分,4秒(默认) /// id小于或等于0则随机生成id /// publicstaticstringGenerLong(stringmark,inttimeType=4,longid=0) { lock(obj) { varnumber=mark; varticks=(DateTime.Now.Ticks-GuidInt).ToString(); intfillCount=0;//填充位数 number+=GetTimeStr(timeType,outfillCount); if(id>0) { number+=ticks.Substring(ticks.Length-fillCount)+id.ToString().PadLeft(19,'0'); } else { number+=GuidIntStr.PadLeft(10,'0')+ticks.Substring(ticks.Length-(9+fillCount)); } returnnumber; } } /// ///获取时间字符串 /// ///时间精确类型1日,2时,3分,4秒(默认) /// 填充位数 /// privatestaticstringGetTimeStr(inttimeType,outintfillCount) { vartime=DateTime.Now; if(timeType==1) { fillCount=6; returntime.ToString("yyyyMMdd"); } elseif(timeType==2) { fillCount=4; returntime.ToString("yyyyMMddHH"); } elseif(timeType==3) { fillCount=2; returntime.ToString("yyyyMMddHHmm"); } else { fillCount=0; returntime.ToString("yyyyMMddHHmmss"); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。