根据以下内容生成14位数

时间:2015-09-08 18:21:10

标签: vb.net

我正在开发一个数据库应用程序。用户将以表格形式输入他/她的详细信息。一旦他们点击注册按钮,这些数据字段将存储在数据库中。

我想要做的是,一旦点击注册按钮,就会生成一个14位数字,作为唯一标识符键记录在数据库中。这些数字基于当前注册年份的最后2位数,他/她的出生日期是8位数,序列号从1开始(由两个零引导,例如001,001),每次注册按钮增加1点击,最后是一个校验位。

例如15071990110014

   Private id As Integer

Public Function generateUniqueNumber() As Long
    id += 1
    Dim curDate As Date = DateTime.Today
    Dim regYear As Integer = curDate.Year.ToString.Substring(2)

    Dim dob As Integer = CInt(BirthDate)
    Dim vID As String = id.ToString("D3")
    Dim uniqueID As String = regYear & dob & vID


    Dim r, sum As Integer
    While uniqueID <> 0
        r = uniqueID Mod 10
        sum += r
        uniqueID \= 10
    End While


    Dim checkDigit As Decimal = 0
    Dim reminder As Decimal = 0

    reminder = sum Mod 10
    If reminder = 0 Then
        checkDigit = 0
    Else
        checkDigit = 10 - reminder
    End If

    Dim uid As String = regYear & dob & vID & checkDigit


    Return uid
End Function

1 个答案:

答案 0 :(得分:0)

以下是一些可能有用的代码段。

DOB格式化为一致的字符串,月和日的前导零。 id被填充。您需要添加代码来调整ID并执行校验位。

    Dim regYear As String = Now.Year.ToString.Substring(2)
    Dim dob As String =Format(CDate("01/01/1990"), "MMddyyyy")
    Dim vID As String = id.ToString.PadLeft(3, "0")
    Dim uniqueID As String = regYear & dob & vID