不管是那天,得到系统日期,s=format(date,"yyyymmdd"),然后根据这个s值生成一个不重复的6位数字,请问该怎么弄?
例:050726 050727 050728 050729 050730
123987 345869 343209 343988 320998
只要得到的6位数字,不管日期是多少号,不重复就行了.
谢谢.
我搞来搞去,总是有重复的.高手指点一下啊.................
例:050726 050727 050728 050729 050730
123987 345869 343209 343988 320998
只要得到的6位数字,不管日期是多少号,不重复就行了.
谢谢.
我搞来搞去,总是有重复的.高手指点一下啊.................
Dim s As Date
s = Date
a = DateSerial(Year(s), Month(s), Day(s))
Debug.Print Format(a, "000000")
Dim dt As Date
Dim sn As String
dt = Date
sn = Format(dt - #2000/01/01#, "000000")
我想他的目的是在他的程序需要连接服务器。所以得用动态密码来实现,
楼主先择了日期,而没选择时间,就说明他考虑到了客户机和服务器上的时间差,也就是说他并不想知道客户机和服务器差多少秒,所以不可逆并不影响楼主想要的功能,实在想逆的话,可以用DES加密。楼上说的并不能保证不会重复, 的确,不能保证不重复,大家想想,6位数字是有限的,而要代表的日期是无穷的,所以说虽你用什么方法,都会重复
Dim n, m, i, X, k, y, zn = Len(strSource)
m = Len(strKey)
strEncrypt = ""
For i = 1 To n
X = Asc(Mid(strSource, i, 1))
k = 1 + ((i - 1) Mod m)
y = Asc(Mid(strKey, k, 1))
z = X Xor y
z = 33 + z - Int(z / 95) * 95
strEncrypt = strEncrypt + Chr(z)
Next i
strEncrypt = strEncrypt
End FunctionPrivate Sub Command1_Click()
Dim dt As Date
Dim sn As String
dt = Date
sn = Format(dt - #1/1/2000#, "000000")
sn = strEncrypt(sn, "0")
End Sub