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#.NET C/S快速开发框架 - 代码自动生成功能 C# 自动生成Goolge/Baidu的SiteMap.xml文件 在建立与服务器的连接出错,定位指定的服务器/实例时出错 C# 控件的属性是个类,如何给添加自定义属性 控件的属性是个类,如何给添加自定义属性(C#) C# GridView列头添加CheckBox控件实现全选功能 C#打开CHM文件并定位到指定的页面(原创) C#.Net组件开发(高级篇) - 使用自定义TypeConverter生成设计时代码 C# 同步工作站与SQL服务器的时间,设置本机时间 生成流水号,数字序号可以指定长度,SP下载 C#日期类型转换工具(时间戳,字符串,long,byte类型互转) C#获取指定日期时间是当前年度的第几个季度 C# GUID序列号转换生成唯一的16位短字符串或19位长数字序号
其它资料:
什么是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内容管理系统 | |