C#抽奖优惠券生成唯一码方法

近日做一抽奖活动 当时直接用Guid生成唯一码做优惠券唯一码使用

后来需求提出唯一码太长,需要优化,找到以下几个不错的方法实现同时分享一下:

1.时间戳方法

private string CreateId()
{
  TimeSpan ts = DateTime.UtcNow - new DateTime(2016, 1, 1, 0, 0, 0, 0);
  return Convert.ToInt64(ts.TotalSeconds).ToString();
}

2.利用GUID和时间Ticks组成的字母+数字 重点在string.Format()方法可以纯数字也可以+字母

 private string CreateId()
{
  long i = 1;
  foreach (byte b in Guid.NewGuid().ToByteArray())
  {
    i *= ((int)b + 1);
  }
  return string.Format("{0:x}", i - DateTime.Now.Ticks);
} 
3、生成数字唯一码
private long CreateId()
{
  byte[] buffer = Guid.NewGuid().ToByteArray();
  return BitConverter.ToInt64(buffer, 0);
} 


 

北清论文网-中国领先的应届毕业生论文网站

北清论文网】【我要毕业啦论文网

posted @ 2016-03-14 10:00  拍空格  阅读(2498)  评论(0编辑  收藏  举报