2,723
社区成员
发帖
与我相关
我的任务
分享
Lparameters lcString
If Len(Alltrim(lcString)) != 18
Return 0
Endif
Dimension quan(17)
quan(1)=7
quan(2)=9
quan(3)=10
quan(4)=5
quan(5)=8
quan(6)=4
quan(7)=2
quan(8)=1
quan(9)=6
quan(10)=3
quan(11)=7
quan(12)=9
quan(13)=10
quan(14)=5
quan(15)=8
quan(16)=4
quan(17)=2
sn = 0
For i = 1 To 17
sn = sn + Val(Substr(lcString,i,1)) * quan(i)
Next
lnTemp = Int(Mod(sn,11)) &&计算最后一个验证码
lcYan = 'a'
If lnTemp == 0
lcYan = '1'
Else
If lnTemp == 1
lcYan = '0'
Else
If lnTemp = 2
lcYan = 'X'
Else
lcYan = Transform(12 - lnTemp)
Endif
Endif
Endif
If Right(lcString,1) != lcYan
Return 0
Endif
If !Left(lcString,2) $ '11,12,13,14,15,21,22,23,31,32,33,34,35,36,37,41,42,43,44,45,46,50,51,52,53,54,61,62,63,64,65,71,81,82 '
Return 0
Endif
If Val(Substr(lcString,7,4)) <= 1950
Return 0
Endif
If Year(Date()) - Val(Substr(lcString,7,4)) < 15
Return 2
Endif
If Val(Substr(lcString,11,2)) < 1 Or Val(Substr(lcString,11,2)) > 12
Return 0
Endif
If Val(Substr(lcString,13,2)) < 0 Or Val(Substr(lcString,13,2)) > 31
Return 0
Endif
Return 1