一個將15的身份證號升為18位的函式(VB) (轉)

gugu99發表於2007-12-09
一個將15的身份證號升為18位的函式(VB) (轉)[@more@]

在新舊身份證同時並存使用的情況下,最好將升位後的18位方式儲存在中,下面的能將輸入的15位資料轉化為18位。

Function IDCode15to18(de15 As String) As String
  '*  功能:將15的身份證號升為18位(根據GB 11643-1999)
  '*  引數:原來的號碼
  '*  返回:升位後的18位號碼
  Dim i As Integer
  Dim num As Integer
  Dim code As String
  num = 0
  IDCode15to18 = Left(sCode15, 6) + "19" + Right(sCode15, 9)
  '  計算校驗位
  For i = 18 To 2 Step -1
  num = num + (2 ^ (i - 1) Mod 11) * (Mid(IDCode15to18, 19 - i, 1))
  Next i
  num = num Mod 11
  Case num
  Case 0
  code = "1"
  Case 1
  code = "0"
  Case 2
  code = "X"
  Case Else
  code = Trim(Str(12 - num))
  End Select
  IDCode15to18 = IDCode15to18 + code
End Function


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-990036/,如需轉載,請註明出處,否則將追究法律責任。

相關文章