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日

相关文章

  • 利用正则表达式抓取博客园列表数据

    下面我将为你详细讲解“利用正则表达式抓取博客园列表数据”的完整攻略。 步骤1:分析目标网站 在开始抓取之前,第一步是分析目标网站的数据结构和抓取规则。对于博客园的列表页面,我们可以先打开开发者工具,查看网页源代码,尝试找到包含所需数据的HTML元素。通过观察可以发现,每个博客园的列表项都包含在一个 div 元素里面,而博客标题、作者、所属分类等信息都分别包含…

    C# 2023年6月1日
    00
  • Unity3D实现批量下载图片功能

    以下是Unity3D实现批量下载图片功能的完整攻略: 1. 准备工作 在开始实现批量下载图片功能之前,我们需要完成以下几个准备工作:1. 创建一个Unity3D项目。2. 确保已经下载了需要下载的图片,并且知道了图片的下载地址。 2. 使用C#实现批量下载图片功能 在Unity3D项目中,我们可以使用C#语言来实现批量下载图片的功能。具体的实现步骤如下: 2…

    C# 2023年6月3日
    00
  • 分享WCF文件传输实现方法—WCFFileTransfer

    WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的框架。WCF可以用于实现各种功能,包括文件传输。本文将介绍如何使用WCF实现文件传输,并分享一个名为WCFFileTransfer的示例项目。 WCFFileTransfer项目介绍 WCFFileTransfer是一个使用WCF实现文件传输的示例项目。该…

    C# 2023年5月15日
    00
  • c# SendMail发送邮件实例代码

    下面详细讲解一下“c# SendMail发送邮件实例代码”的完整攻略。 什么是SendMail? SendMail是c#中一个邮件发送类,可以方便地实现发送邮件的功能。它的使用方法较为简单,只需要按照一定格式配置SMTP服务器和发件人信息,即可完成邮件的发送。 SendMail使用教程 配置SMTP服务器 在使用SendMail发送邮件前,需要首先配置SMT…

    C# 2023年6月7日
    00
  • Unity ScrollView实现自动吸附效果

    我将详细讲解一下“Unity ScrollView实现自动吸附效果”的完整攻略。 一、准备工作 创建一个空的Unity项目 创建一个Canvas,将Canvas的Render Mode设置为Screen Space – Overlay 在Canvas下面创建一个ScrollView,将ScrollView的Content的Layout Group设置为Ver…

    C# 2023年6月3日
    00
  • C#中的反射(System.Reflection)

    下面是针对“C#中的反射(System.Reflection)”的完整攻略。 什么是反射 反射是一种在运行时获取类型信息和操作对象的方法。它允许程序在运行时发现和调用在编译时未知的类型、方法和属性。利用反射,您可以: 获取程序集、模块和类型的元数据 创建类型的实例、操作成员、获取在许多情况下是编译时未知的属性和字段值 反射在许多场合被使用,如: 在运行时加载…

    C# 2023年5月15日
    00
  • 详解.NET 6如何实现获取当前登录用户信息

    获取当前登录用户信息是Web应用程序中常见的功能之一。在.NET 6中,可以使用ASP.NET Core身份验证功能来实现获取当前登录用户信息。下面是详细的攻略。 添加ASP.NET Core身份验证 在.NET 6中,添加ASP.NET Core身份验证功能非常简单,只需在应用程序的Startup.cs文件中的ConfigureServices方法中添加以…

    C# 2023年5月31日
    00
  • 微软框架.NET Framework是什么附net framework下载地址

    “微软框架.NET Framework”是用于微软Windows操作系统上的一个开发框架,它可以用来创建和运行各种类型的应用程序,包括Web应用程序、桌面应用程序、移动应用程序和游戏等。 .NET Framework的作用 .NET Framework可以提供以下几方面的支持: 执行和管理应用程序的内存,包括对象生命周期、垃圾收集和线程管理; 提供一组预定义…

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