计算出生日期

hcsalon 2006-08-10 05:36:29
大家好:
有这样一个问题,就是我现在用C#开发一个小程序,页面有身份证和出生日期两项。我想实现的是由身份证来提取出生日期。如我输入220108790615254,那么出生日期的TEXTBOX就能显示‘1979-06-15’ ,输入22010819790615254X,出生日期的TEXTBOX也能显示‘1979-06-15’
小弟刚接触C#不长时间,希望大家多帮助,对了,后台数据库是SQLSERVER,最好能写出具体代码
...全文
823 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhewky 2006-08-11
  • 打赏
  • 举报
回复
支持拆分,格式化方法,也就是截取再组合的方式!留名学习.
Mark2Win 2006-08-11
  • 打赏
  • 举报
回复
楼上各位说得都对, 这种业务逻辑应该在程序里面实现, 用数据库的话反而不好.
  • 打赏
  • 举报
回复
简单说就是提取 首先判断位数 以便知道是新证还是旧证 下来 按照新旧证的位数提取 然后位数拆开 再合并
gisgeoboy 2006-08-11
  • 打赏
  • 举报
回复
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;
}
hcsalon 2006-08-11
  • 打赏
  • 举报
回复
如果是这样写的代码,那么我该如何修改呢,看这个人写的代码真的很费劲,跟我平时写的程序完全两样,或者说它基本上都模块化了
hcsalon 2006-08-11
  • 打赏
  • 举报
回复
我最近正在看别人发给我的一套程序,我觉得完全跟我以前写程序的思路不一样,下面把其中一段的代码发给大家
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;
dlzhangln 2006-08-10
  • 打赏
  • 举报
回复
就是截取字符
thirdman 2006-08-10
  • 打赏
  • 举报
回复
String id = "231198111040124";
String BirthDay = id.SubString(3,4) + "-" + id.SubString(7,2) + "-" + id.SubString(9,2);
tiger406 2006-08-10
  • 打赏
  • 举报
回复
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位数的道理差不多
lovvver 2006-08-10
  • 打赏
  • 举报
回复
在输入身份证号码的textbox上加一个失去焦点事件,在该事件里对身份证号码做分析,然后写到生日控件上即可。

1。这个事件也可以选择生日控件获得焦点;
2。在判断身份证号码时,先判断号码长度,根据不同情况来提取生日,然后做相应赋值就行了。
lxhvc 2006-08-10
  • 打赏
  • 举报
回复
用SubString()方法
www_123du_com 2006-08-10
  • 打赏
  • 举报
回复
跟数据库无关

截取一个字符串就行了

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧