C# 生成日期时间数字唯一序号,尾部添加指定位数长度的随机码
作者:C/S框架网|www.cscode.ne  发布日期:2020/04/28 22:33:58
  C# 生成日期时间数字唯一序号,尾部添加指定位数长度的随机码

C# 生成日期时间数字唯一序号,尾部添加指定位数长度的随机码



用于生成可按日期时间排序的唯一数字序号,可应用于交易流水号,记录主键,单据号码等。


C# Code:

static void Main(string[] args)
{
  Console.WriteLine(
"生成日期时间数字序号,尾部添加指定位数长度的随机码:");
  Console.WriteLine(
"www.csframework.com");
  Console.WriteLine(
"-------------------------------------------");
  Console.WriteLine(GetRowID(
6, true));
  Console.WriteLine(GetRowID(
9));
  Console.WriteLine(GetRowID(
18, true));
  Console.ReadLine();
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761




贴图图片-生成日期时间数字唯一序号




C# Code:

/// <summary>
/// 生成日期时间数字序号,尾部添加指定位数长度的随机码
/// </summary>
/// <param name="randomLen">随机数字长度,如:7, 生成最大9999999的数字</param>
/// <param name="SNSplite">随机数序号签名添加分隔符,如:20200324162034169-0758707</param>
/// <returns></returns>
public static string GetRowID(int randomLen = 7, bool SNSplite = false)
{
  
//必须暂停线程,避免并发
  
Thread.Sleep(100);
  
  
//拼接基准因子,如:1000000
  
StringBuilder sb = new StringBuilder("1");
  
for (int i = 1; i < randomLen; i++) sb.Append("0");
  
  
decimal j = decimal.Parse(sb.ToString()) * 9;//生成:9999999
  
  
//兼容Int32最大值
  
if (j > Int32.MaxValue) j = Int32.MaxValue;
  
  
int maxInt = (Int32)j;
  
  
//生成随机数
  
string sn = new Random().Next(1, maxInt).ToString().PadLeft(randomLen, '0');
  
  
//组合日期时间数字序号
  
string rowID = DateTime.Now.ToString("yyyyMMddHHmmssfff") + (SNSplite ? "-" : "") + sn;
  
return rowID;
}

//来源:C/S框架网 | www.csframework.com | QQ:23404761





C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇