/// <summary>
/// 创建一个按时间排序的Guid
/// </summary>
/// <returns></returns>
public
static
string
GetID()
{
byte
[] guidArray = Guid.NewGuid().ToByteArray();
DateTime now = DateTime.Now;
DateTime baseDate =
new
DateTime(1900, 1, 1);
TimeSpan days =
new
TimeSpan(now.Ticks - baseDate.Ticks);
TimeSpan msecs =
new
TimeSpan(now.Ticks - (
new
DateTime(now.Year, now.Month, now.Day).Ticks));
byte
[] daysArray = BitConverter.GetBytes(days.Days);
byte
[] msecsArray = BitConverter.GetBytes((
long
)(msecs.TotalMilliseconds / 3.333333));
Array.Copy(daysArray, 0, guidArray, 2, 2);
//毫秒高位
Array.Copy(msecsArray, 2, guidArray, 0, 2);
//毫秒低位
Array.Copy(msecsArray, 0, guidArray, 4, 2);
return
new
System.Guid(guidArray).ToString();
}