zoukankan      html  css  js  c++  java
  • Powerbuilder编写身份证校验码

     1 public function boolean of_calc_cardid_verifycode (string as_cardid, ref string as_verifycode);
     2 /*
     3 计算身份证校验码 王贤进 2014.03.15
     4 参数:string as_cardid 身份证的前17位或18位(第18位可随便)
     5     ref string as_verifycode 返回校验码,即身份证的第18位值
     6 返回值:    TRUE为有效身份证号,并将校验码在as_verifycode中返回
     7             FALSE为无效身份证号
     8 原理参考:http://zh.wikisource.org/wiki/GB_11643-1999_%E5%85%AC%E6%B0%91%E8%BA%AB%E4%BB%BD%E5%8F%B7%E7%A0%81
     9 */
    10 char Ai[17]
    11 int Wi[17] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}
    12 char codeTable[0 to 10]="10X98765432"
    13 string ls_carid
    14 ls_carid = Trim(as_cardid)
    15 IF Len(ls_carid) <> 17 AND len(ls_carid)<>18 Then Return false
    16 Ai = Left(ls_carid,17)
    17 IF Not Match(Ai,"^[0-9]+$") Then Return false
    18 
    19 long ll_l,ll_sum
    20 ll_sum = 0
    21 for ll_l = 1 To 17
    22     ll_sum += long(Ai[ll_l]) * Wi[ll_l]
    23 Next
    24 
    25 as_verifycode = codeTable[ Mod(ll_sum,11)]
    26 Return True
    27 end function
  • 相关阅读:
    Markdown语法
    Hello World
    sql笔试题-1
    解决高版本vm打开虚拟机报错
    zookeeper启动闪退
    java找出1~1000中素数的三种方式
    Java中更精确的计时
    vue系列之调试工具(vue-devtools)
    vue系列之npm命令错误
    vue系列之安装基础环境
  • 原文地址:https://www.cnblogs.com/wangxianjin/p/3644987.html
Copyright © 2011-2022 走看看