C#根据时间产生有序的GUID编码
2016-07-20 22:57
573 查看
public static Guid GenerateGuid() { byte[] guidArray = Guid.NewGuid().ToByteArray(); var baseDate = new DateTime(1900, 1, 1); DateTime now = DateTime.Now; var days = new TimeSpan(now.Ticks - baseDate.Ticks); TimeSpan msecs = now.TimeOfDay; byte[] daysArray = BitConverter.GetBytes(days.Days); byte[] msecsArray = BitConverter.GetBytes((long)(msecs.TotalMilliseconds / 3.333333)); Array.Reverse(daysArray); Array.Reverse(msecsArray); Array.Copy(daysArray,daysArray.Length - 2,guidArray,guidArray.Length - 6,2); Array.Copy(msecsArray,msecsArray.Length - 4,guidArray,guidArray.Length - 4,4); return new Guid(guidArray); }
public static Guid GenerateGuid() { byte[] guidArray = Guid.NewGuid().ToByteArray(); var baseDate = new DateTime(1900, 1, 1); DateTime now = DateTime.Now; var days = new TimeSpan(now.Ticks - baseDate.Ticks); TimeSpan msecs = now.TimeOfDay; byte[] daysArray = BitConverter.GetBytes(days.Days); byte[] msecsArray = BitConverter.GetBytes((long)(msecs.TotalMilliseconds / 3.333333)); Array.Reverse(daysArray); Array.Reverse(msecsArray); Array.Copy(daysArray,daysArray.Length - 2,guidArray,guidArray.Length - 6,2); Array.Copy(msecsArray,msecsArray.Length - 4,guidArray,guidArray.Length - 4,4); return new Guid(guidArray); }
相关文章推荐
- 分享一个Fluent风格的邮件发送封装类
- POJ1141 Brackets Sequence(DP)
- Starting MySQL....The server quit without updating PID file 处理方法
- Intel XDK 上对Edison + Arduino 编程
- return continue break
- java中stringBuilder的用法
- String,StringBuffer与StringBuilder的区别??
- GCD
- iOS开发从入门到精通-- 步进器UIStepper和分栏控制器UISegmentedControl
- mysql query to find the maximum 3 values from a column and group by on other column
- GUI监听器实现方式
- Guess Number Higher or Lower
- GUI步骤
- uint16_t、uint32_t、uint64_t,小端序
- GUI简易窗口
- Android的线程使用来更新UI----Thread、Handler、Looper、TimerTask等
- uitableviewcontroller使用
- UEFI BIOS模式下Windows系统启动过程以及引导文件修复方法
- String、StringBuffer、StringBuilder 性能测试
- POJ 2259 Team Queue(队列)