近日做一抽獎活動 當時直接用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); }
北清論文網-中國領先的應屆畢業生論文網站