大家好:
   有这样一个问题,就是我现在用C#开发一个小程序,页面有身份证和出生日期两项。我想实现的是由身份证来提取出生日期。如我输入220108790615254,那么出生日期的TEXTBOX就能显示‘1979-06-15’ ,输入22010819790615254X,出生日期的TEXTBOX也能显示‘1979-06-15’
小弟刚接触C#不长时间,希望大家多帮助,对了,后台数据库是SQLSERVER,最好能写出具体代码

解决方案 »

  1.   

    在输入身份证号码的textbox上加一个失去焦点事件,在该事件里对身份证号码做分析,然后写到生日控件上即可。1。这个事件也可以选择生日控件获得焦点;
    2。在判断身份证号码时,先判断号码长度,根据不同情况来提取生日,然后做相应赋值就行了。
      

  2.   

    if(this.a.Text.Length==15){
    string str,temp;
    temp=this.a.Text.Substring(6,2);
    str="19"+temp;
    temp=this.a.Text.Substring(8,2);
    str=str+"-"+temp;
    temp=this.a.Text.Substring(10,2);
    str=str+"-"+temp;
    this.b.Text=str;
    }
    18位数的道理差不多
      

  3.   

    String id  = "231198111040124";
    String BirthDay = id.SubString(3,4) + "-" + id.SubString(7,2) + "-" + id.SubString(9,2);
      

  4.   

    我最近正在看别人发给我的一套程序,我觉得完全跟我以前写程序的思路不一样,下面把其中一段的代码发给大家
    case "update":  //修改
                        //*********************************************************************************************************
                        pObj_ModulePage.Inputs.Clear();
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_PC_ID, WSL2Enum.LayoutEnum.DATA, this.PageParameters.GetURLParameter("PC_ID"));   //所属单位
    //Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_No, WSL2Enum.LayoutEnum.TEXTBOX, WSL2Enum.MustEnum.YES);   //人员名称
    Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Name, WSL2Enum.LayoutEnum.TEXTBOX, WSL2Enum.MustEnum.YES);   //人员名称
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Sex, WSL2Enum.LayoutEnum.RADIO, WSL2Enum.MustEnum.YES);   //性别
                        //Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Age, WSL2Enum.LayoutEnum.NUMERIC, WSL2Enum.MustEnum.NO);   //年龄
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Job, WSL2Enum.LayoutEnum.DROPDOWNLIST, WSL2Enum.MustEnum.NO);   //工种
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_IDCard, WSL2Enum.LayoutEnum.TEXTBOX, WSL2Enum.MustEnum.YES);   //身份证号
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_BornDate, WSL2Enum.LayoutEnum.DATETIME, WSL2Enum.MustEnum.YES);   //出生日期
    Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Grade, WSL2Enum.LayoutEnum.DROPDOWNLIST, WSL2Enum.MustEnum.NO);   //文化程度
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_BeginDate, WSL2Enum.LayoutEnum.DATETIME, WSL2Enum.MustEnum.YES);   //签定日期
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_EndDate, WSL2Enum.LayoutEnum.DATETIME, WSL2Enum.MustEnum.YES);   //截止日期
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Addr, WSL2Enum.LayoutEnum.TEXTBOX, WSL2Enum.MustEnum.NO);   //地址
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Contact, WSL2Enum.LayoutEnum.TEXTAREA, WSL2Enum.MustEnum.NO);   //联系方式
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Explain, WSL2Enum.LayoutEnum.TEXTAREA, WSL2Enum.MustEnum.NO);   //说明
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_Status, WSL2Enum.LayoutEnum.RADIO, WSL2Enum.MustEnum.YES);   //状态
                        Obj_Item = pObj_ModulePage.Inputs.Add(mObj_DBLogic.TableStructure_Self.Column_PP_M_Time, WSL2Enum.LayoutEnum.EXPRESSION, "getdate()");   //修改时间
                        break;
      

  5.   

    public class ID
    {
    private static string BirthDay="";
    private static string strYear;
    private static string strMonth;
    private static string strDay;
    public ID()
    {

    }
    public static string GetDate(TextBox IDCard)
    {
    string id=IDCard.Text.Trim();
    if(id.Length==15)
    {
    strYear=id.Substring(6,2);
    strMonth=id.Substring(8,2);
    strDay=id.Substring(10,2);
    BirthDay="19"+strYear+"-"+strMonth+"-"+strDay;

    }
    if(id.Length==18)
    {
    strYear=id.Substring(6,4);
    strMonth=id.Substring(10,2);
    strDay=id.Substring(12,2);
    BirthDay=strYear+"-"+strMonth+"-"+strDay;
    }
    return BirthDay;
    }
      

  6.   

    另一种解决思路:先把15位身份证号码转换成18位地!然后使用: private string GetBirthDayFormID(string ID)
    {
      string tem = String.Temp;
      tem = ID.SubString(xx,xx);
      ...
    }