將身份證號由15位轉換為18位的函式

2021-08-23 15:31:39 字數 1260 閱讀 8576

最近需要將身份證號由15位轉換為18位,google了半天也沒發現在vfp下能夠直接使用的,一些演算法也不正確。自己寫了乙個,有需要的直接ctrl+c吧。

在vfp的command視窗的鍵入命令modify command getnewid,將下面的**複製到**視窗中,儲存後退出。

在command中鍵入 ?getnewid('372432710112001')

lparameters coldid

if parameters() = 0 &&未傳遞引數

return '99'

endif

if vartype(coldid) <> 'c' &&傳遞引數型別不正確

return '88'

endif

local array anumber[17]

local clastcode as character, cnewid as character, nsum as integer, nmod as integer

anumber[1]=7

anumber[2]=9

anumber[3]=10

anumber[4]=5

anumber[5]=8

anumber[6]=4

anumber[7]=2

anumber[8]=1

anumber[9]=6

anumber[10]=3

anumber[11]=7

anumber[12]=9

anumber[13]=10

anumber[14]=5

anumber[15]=8

anumber[16]=4

anumber[17]=2

*!* 校驗碼常數

clastcode = "10x98765432"

cnewid =substr(coldid,1,6)+"19"+substr(coldid,7,9)

*!* 將cnewid的每一位乘以anumber陣列中的每一位進行求和

nsum = 0

for i = 1 to 17

nsum = nsum + val(substr(cnewid,i,1)) * anumber[i]

endfor

*!*將和求餘

nmod = mod(nsum, 11) + 1

*!* 擷取校驗碼放在身份證號的最後一位

cnewid = cnewid + substr(clastcode, nmod, 1)

return cnewid

將身份證號由15位轉換為18位的函式

最近需要將身份證號由15位轉換為18位,google了半天也沒發現在vfp下能夠直接使用的,一些演算法也不正確。自己寫了乙個,有需要的直接ctrl c吧。在vfp的command視窗的鍵入命令modify command getnewid,將下面的 複製到 視窗中,儲存後退出。在command中鍵入...

身份證號 15位與18位間的轉換

開始 15位到18位的身份證號轉換 身份證號碼由十七位數字本體碼和一位校驗碼組成,排列順序從左至右依次為 六位數字址碼 八位數字的出生日期碼 三位數字的順序碼和一位數字的校驗碼 public string change18id string id15 if id15.length 15 char a...

15位身份證 18位轉換

region 元件設計器生成的 web 服務設計器所必需的 private icontainer components null 設計器支援所需的方法 不要使用 編輯器修改 此方法的內容。private void initializecomponent 清理所有正在使用的資源。protected o...