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

本文介绍了一种将15位身份证号码升级到18位的算法实现,该算法遵循GB11643-1999标准,通过添加年份前缀及计算校验码完成转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

FunctionIDCode15to18(sCode15AsString)AsString
   '* 功能:将15的 身份证号升为18位(根据GB11643-1999)
   '* 参数:原来的号码
   '* 返回:升位后的18位号码
   DimiAsInteger
   DimnumAsInteger
   DimcodeAsString
   num=0
   IDCode15to18=Left(sCode15,6)+"19"+Right(sCode15,9)
   ' 计算校验位
   Fori=18To2Step-1
     num=num+(2^(i-1)Mod11)*(Mid(IDCode15to18,19-i,1))
   Nexti
   num=numMod11
   SelectCasenum
   Case0
     code="1"
   Case1
     code="0"
   Case2
     code="X"
   CaseElse
     code=Trim(Str(12-num))
   EndSelect
   IDCode15to18=IDCode15to18+code
EndFunction


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值