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
{
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
/// 生成日期时间数字序号,尾部添加指定位数长度的随机码
/// </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框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
