问题描述
- 以下方法在什麽情況下會生成重複的12位字符串?或是在9999年之前都不會生成重複?
-
public static string GetBarcode()
{
Thread.Sleep(1);//時間延遲 1/1000 秒,沒理解錯的話應該可以改變格式化時間的四位 ffff 的值
string barcode = DateTime.Now.ToString("yyyy:MM:dd:HH:mm:ss:ffff");
string[] s = barcode.Split(':');
string y;
string t ;
string f;
y = (Convert.ToInt32(s[0])+Convert .ToInt32 (s[1])+Convert .ToInt32 (s[2])).ToString ().PadLeft (5,'0');
t = (Convert.ToInt32(s[3]) + Convert.ToInt32(s[4]) + Convert.ToInt32(s[5])).ToString().PadLeft(3, '0');
f = s[6].PadLeft (4,'0');
barcode = string.Format("{0}{1}{2}",y,t,f);
return barcode;
}
解决方案
年份为回文类型(或四位相同)时可能重复的概率极大。
时间: 2024-10-03 04:07:15