C# 根据身份证号码判断出生日期和性别
步骤1:获取身份证号码的输入
在 C# 中,我们可以通过 Console.ReadLine() 方法获取用户输入的身份证号码。示例代码如下:
Console.WriteLine("请输入身份证号码:");
string idCard = Console.ReadLine();
步骤2:校验身份证号码合法性
在 C# 中,我们可以编写正则表达式来校验身份证号码的合法性。正则表达式如下:
string regex = @"^\d{17}\d|x|X$";
其中,^ 表示匹配字符串开头,\d 表示匹配数字,{17} 表示连续匹配 17 个数字,| 表示或,x 表示身份证号码最后一位可能是 x 或 X,$ 表示匹配字符串结尾。示例代码如下:
if (!Regex.IsMatch(idCard, regex))
{
Console.WriteLine("身份证号码不合法!");
return;
}
步骤3:解析出生日期和性别信息
在 C# 中,我们可以使用字符串的 Substring() 方法和 Convert.ToInt32() 方法来解析身份证号码中的出生日期和性别信息。具体实现如下:
// 解析出生日期
string birthdayStr = idCard.Substring(6, 8);
DateTime birthday = DateTime.ParseExact(birthdayStr, "yyyyMMdd", null);
// 解析性别
int genderCode = Convert.ToInt32(idCard.Substring(16, 1));
string gender = genderCode % 2 == 0 ? "女" : "男";
其中,Substirng(startIndex, length) 方法表示从字符串中的 startIndex 开始位置截取 length 长度的子字符串,ParseExact() 方法表示将指定格式的字符串转换为 DateTime 类型。示例代码如下:
Console.WriteLine($"出生日期:{birthday.ToString("yyyy年MM月dd日")}");
Console.WriteLine($"性别:{gender}");
完整代码示例
using System;
using System.Text.RegularExpressions;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入身份证号码:");
string idCard = Console.ReadLine();
string regex = @"^\d{17}\d|x|X$";
if (!Regex.IsMatch(idCard, regex))
{
Console.WriteLine("身份证号码不合法!");
return;
}
string birthdayStr = idCard.Substring(6, 8);
DateTime birthday = DateTime.ParseExact(birthdayStr, "yyyyMMdd", null);
int genderCode = Convert.ToInt32(idCard.Substring(16, 1));
string gender = genderCode % 2 == 0 ? "女" : "男";
Console.WriteLine($"出生日期:{birthday.ToString("yyyy年MM月dd日")}");
Console.WriteLine($"性别:{gender}");
}
}
}
其中,用户输入身份证号码为 110101199003073993,程序输出如下:
请输入身份证号码:
110101199003073993
出生日期:1990年03月07日
性别:男
另外一个示例,用户输入身份证号码为 120105198011191739,程序输出如下:
请输入身份证号码:
120105198011191739
出生日期:1980年11月19日
性别:女
注意:本文仅提供根据身份证号码判断出生日期和性别的示例代码,不涉及身份证号码的核实和真实性。真实情况下,请使用正规的身份证核实系统进行身份证核实。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#根据身份证号码判断出生日期和性别 - Python技术站