C#根据身份证号码判断出生日期和性别

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技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • C# 实现Trim方法去除字符串前后的所有空格

    下面是我对“C# 实现Trim方法去除字符串前后的所有空格”的完整攻略: 1.概述 在C#中,字符串是一种非常常见的数据类型。在进行字符串操作时,常常涉及到去除字符串前后的所有空格。这个操作可以用C#自带的Trim()方法来实现。同时,在某些场合下,我们需要自己编写代码实现Trim()方法。 2.使用C#自带的Trim()方法去除字符串前后的所有空格 C#自…

    C# 2023年6月7日
    00
  • asp.net(c#)判断远程图片是否存在

    当我们在使用asp.net(c#)获取远程图片时,我们需要先判断该图片是否存在。为了判断图片是否存在,我们可以使用HTTP协议的HEAD请求方法。HEAD请求方法会返回HTTP头信息,但不会返回HTTP body信息。如果返回状态码为200,说明该图片存在;如果返回状态码为404,说明该图片不存在。 下面是使用C#代码判断远程图片是否存在的完整攻略: 步骤一…

    C# 2023年6月3日
    00
  • C# 模式匹配完全指南

    C# 模式匹配完全指南 什么是 C# 模式匹配? C# 7.0 开始加入了一种新的特性,那就是模式匹配(Pattern Matching)。模式匹配的主要作用是用来匹配各种数据类型,从而简化我们的程序设计,并且让代码更加简洁易懂。 C# 模式匹配的类型 常量模式(Constant Patterns) 次类型模式(Type Patterns) 变量模式(Var…

    C# 2023年5月15日
    00
  • 使用C#配合ArcGIS Engine进行地理信息系统开发

    一、ArcGIS Engine ArcGIS Engine是ESRI公司出品的用于构建自定义GIS应用程序的开发包。ArcGIS Engine基于COM和现代.NET框架技术体系结构,具有高效、可扩展的GIS开发架构和丰富的应用开发资源和文档。ArcGIS Engine可与ArcGIS Server、ArcGIS for Desktop、ArcGIS Onl…

    C# 2023年6月1日
    00
  • C#多种操作excel的方法比较

    C#多种操作excel的方法比较 概述 在C#中,操作Excel的方法有很多种,我们可以使用COM Interop方式、OleDb方式、ADO.Net方式等。本文将对这些方式进行比较,并给出相应的示例代码。 COM Interop方式 使用COM Interop方式可以使用Excel内置的对象模型来进行Excel文件的读写操作。 示例代码: using Mi…

    C# 2023年6月1日
    00
  • 详解如何在ASP.NET Core中使用Route特性

    详解如何在ASP.NET Core中使用Route特性 在ASP.NET Core中,Route特性是一种常用的路由技术,它可以帮助我们定义URL模式,将请求映射到相应的控制器和操作方法。本攻略将介绍如何在ASP.NET Core中使用Route特性,并提供两个示例说明。 使用Route特性 在ASP.NET Core中,我们可以使用Route特性来定义UR…

    C# 2023年5月17日
    00
  • silverlight调用淘宝api接口做淘宝客应用

    Silverlight调用淘宝API接口做淘宝客应用 淘宝API是淘宝开放平台提供的一组Web API,可以让开发者通过API接口访问淘宝的商品、店铺、订单等信息。本文将介绍如何使用Silverlight调用淘宝API接口,实现一个简单的淘宝客应用。 1.注册淘宝开放平台应用 首先,我们需要在淘宝开放平台注册一个应用,以获取App Key和App Secre…

    C# 2023年5月15日
    00
  • 如何在c#中使用opencv函数库

    在C#中使用OpenCV函数库可以通过OpenCVSharp来完成,以下是使用OpenCVSharp的完整攻略: 安装OpenCVSharp 在Visual Studio中,可以通过NuGet包管理器安装OpenCVSharp。 打开Visual Studio,创建一个新的工程。 在Visual Studio的菜单中选择“工具” -> “NuGet包管…

    C# 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部