zoukankan      html  css  js  c++  java
  • 身份证

    private bool CheckIDCard_CHS(string IDCard)
    {
        
    string[] arrVarifyCode = ("1,0,x,9,8,7,6,5,4,3,2").Split(',');
        
    string[] Wi = ("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2").Split(',');
        
    string[] Checker = ("1,9,8,7,6,5,4,3,2,1,1").Split(',');
        
    int intLength = IDCard.Length;

        
    int i = 0, TotalmulAiWi = 0;
        
    int modValue = 0;
        
    string strVerifyCode = "";
        
    string Ai = "";
        
    string BirthDay = "";
        
    int intYear = 0;
        
    int intMonth = 0;
        
    int intDay = 0;

        
    if (intLength != 18)
        {
            
    return false;
        }
        
    if (intLength == 18)
        {
            Ai 
    = IDCard.Substring(017);
        }
        
    else if (intLength == 15)
        {
            Ai 
    = IDCard;
            Ai 
    = Ai.Substring(06+ "19" + Ai.Substring(69);
        }
        
    if (!IsNumeric(Ai)) return false;

        intYear 
    = Convert.ToInt32(Ai.Substring(64));
        intMonth 
    = Convert.ToInt32(Ai.Substring(102));
        intDay 
    = Convert.ToInt32(Ai.Substring(122));

        BirthDay 
    = intYear.ToString() + "-" + intMonth.ToString() + "-" + intDay.ToString();
        
    if (IsDateTime(BirthDay))
        {
            DateTime DateBirthDay 
    = DateTime.Parse(BirthDay);
            
    if (DateBirthDay > DateTime.Now)
            {
                
    return false;
            }

            
    int intYearLength = DateBirthDay.Year - DateBirthDay.Year;
            
    if (intYearLength < -140)
            {
                
    return false;
            }
        }

        
    if (intMonth > 12 || intDay > 31)
        {
            
    return false;
        }

        
    for (i = 0; i < 17; i++)
        {
            TotalmulAiWi 
    = TotalmulAiWi + (Convert.ToInt32(Ai.Substring(i, 1)) * Convert.ToInt32(Wi[i].ToString()));
        }
        modValue 
    = TotalmulAiWi % 11;

        strVerifyCode 
    = arrVarifyCode[modValue].ToString();
        Ai 
    = Ai + strVerifyCode;
        
    if (intLength == 18 && IDCard != Ai)
        {
            
    return false;
        }
        
    return true;
    }
    /// 判断字符串是否可转换为DateTime
    /// 要判断的字符串
    /// true=可以转换;false=无法转换
    private bool IsDateTime(string s)
    {
        
    try
        {
            System.DateTime.Parse(s);
        }
        
    catch
        {
            
    return false;
        }
        
    return true;
    }

    /// 判断字符串是否可以转换为数字
    /// 
    /// 要判断的字符串
    /// true=可以转换;false=无法转换
    private bool IsNumeric(object value)
    {
        
    try
        {
            
    double i = Convert.ToDouble(value.ToString());
            
    return true;
        }
        
    catch (FormatException)
        {
            
    return false;
        }
    }
  • 相关阅读:
    理解Angular中的$apply()以及$digest()
    google书签找回
    地址
    c# mvc 封装返回对象
    C#设计模式总结
    EntityFramework.Extended 对EF进行扩展
    C#进阶系列——WebApi 路由机制剖析:你准备好了吗?
    C#进阶系列——WebApi 跨域问题解决方案:CORS
    VS插件File Nesting
    c# implicit explicit关键字(隐式和显式数据类型转换)
  • 原文地址:https://www.cnblogs.com/meiproject/p/1099459.html
Copyright © 2011-2022 走看看