首页 > 开发 > 综合 > 正文

一个将15的身份证号升为18位的函数(VB)

2024-07-21 02:24:55
字体:
来源:转载
供稿:网友

在新旧身份证同时并存使用的情况下,最好将升位后的18位方式保存在数据库中,下面的函数能将用户输入的15位数据转化为18位。

function idcode15to18(scode15 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
    select 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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表