如何比较两个 GUID 值生成的时间的先后?

zahuifan 2004-09-28 08:58:48
GUID 值是跟时间有关系吧?
是不是可以比较两个 GUID 值生成的时间的先后?(比如通过比较两个值的大小)
有谁可以告诉我 GUID 的生成算法?
...全文
210 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycxdy 2004-09-30
不会 学习
回复
dolfin 2004-09-29
GUID是按照OSF DCE,3算法计算(你可以在网上搜索一下,看能否找到这个算法的详细介绍。)GUID是以下几部分的组合:当前日期和时间(GUID的第一个部分与时间有关,如果你在生成一个GUID之后,过几秒又生成一个GUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)等。在Windows编程时,也可以调用CoCreateGuid函数获得。
回复
qpl007 2004-09-29
应该是无法不能比较的吧!
回复
沈逸 2004-09-29
无法判断
回复
happyjun2000 2004-09-29
学到知识了,
顶!
回复
李洪喜 2004-09-29
呵..可能是没有办法.
回复
dolfin 2004-09-28
vb的GUID生成算法

'RETURNS: GUID if successful; blank string otherwise.
'Unlike the GUIDS in the registry, this function returns GUID
'without "-" characters. See comments for how to modify if you
'want the dash.

Public Function GUID() As String
Dim lRetVal As Long
Dim udtGuid As GUID

Dim sPartOne As String
Dim sPartTwo As String
Dim sPartThree As String
Dim sPartFour As String
Dim iDataLen As Integer
Dim iStrLen As Integer
Dim iCtr As Integer
Dim sAns As String

On Error GoTo errorhandler
sAns = ""

lRetVal = CoCreateGuid(udtGuid)

If lRetVal = 0 Then

'First 8 chars
sPartOne = Hex$(udtGuid.PartOne)
iStrLen = Len(sPartOne)
iDataLen = Len(udtGuid.PartOne)
sPartOne = String((iDataLen * 2) - iStrLen, "0") _
& Trim$(sPartOne)

'Next 4 Chars
sPartTwo = Hex$(udtGuid.PartTwo)
iStrLen = Len(sPartTwo)
iDataLen = Len(udtGuid.PartTwo)
sPartTwo = String((iDataLen * 2) - iStrLen, "0") _
& Trim$(sPartTwo)

'Next 4 Chars
sPartThree = Hex$(udtGuid.PartThree)
iStrLen = Len(sPartThree)
iDataLen = Len(udtGuid.PartThree)
sPartThree = String((iDataLen * 2) - iStrLen, "0") _
& Trim$(sPartThree) 'Next 2 bytes (4 hex digits)

'Final 16 chars
For iCtr = 0 To 7
sPartFour = sPartFour & _
Format$(Hex$(udtGuid.PartFour(iCtr)), "00")
Next

'To create GUID with "-", change line below to:
'sAns = sPartOne & "-" & sPartTwo & "-" & sPartThree _
'& "-" & sPartFour

sAns = sPartOne & sPartTwo & sPartThree & sPartFour

End If

GUID = sAns
Exit Function


errorhandler:
'return a blank string if there's an error
Exit Function
End Function
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.