例如流水号格式如下:XX201604120001,2位前缀加8位日期加4位流水号
首先各种搜索出现如下解决方案
public class SerialNoHelper
{
/// <summary>
/// 生成流水号
/// </summary>
/// <param name="serialno">从数据库读取最大的流水号</param>
/// <returns></returns>
public String Generate(String serialno)
{
var today = DateTime.Today.ToString("yyyyMMdd");
if (String.IsNullOrEmpty(serialno))
return $"XX{today}0001";
var date = serialno.Substring(2, 8);
if (date == today)
{
var no = Convert.ToInt32(serialno.Substring(10));
return $"XX{today}{++no:0000}";
}
return $"XX{today}0001";
}
}