新手求一个后台判断身份证号大于18岁的例子~

时间:2022-12-08 23:21:20
求一个后台能判断填写的身份证号是否大于18岁的判断。不知道该如何做。求教大神~

12 个解决方案

#1


根据身份证规则啊,15位和18的身份证都是可以知道具体哪几个位置的字符串代表的是出生日期啊。。。。取到出生日期后再和当前日期对比不就能得到是不是满18岁了?

#2


判断不了,身份证可以乱填。

#3


XXXXXXyyyymmddXXXX 身份证中间yyyymmdd表示出生年月的,现在时间减出生年月求年龄呗

#4


有一个问题-> 你如何保证身份证号的准确性?

#5


新手求一个后台判断身份证号大于18岁的例子~连接到*部的数据库

#6


引用 5 楼 await2013 的回复:
连接到*部的数据库

谁让你连...

#7



当前时间 - 位置5-9
看年份是否小于18

#8



            string pid = "210532298105062562";
            string dateStr = pid.Substring(6, 8);
            dateStr = dateStr.Substring(0, 4) + "-" + dateStr.Substring(4, 2) + "-" + dateStr.Substring(6);
            DateTime birthday;
            if (DateTime.TryParse(dateStr, out birthday))
            {
                int currentYear = DateTime.Now.Year;
                int birthdayYear = birthday.Year;
                int age = currentYear-birthdayYear;
                if (age >= 18 && age < 150)//大于18,小于150
                {
                    Console.WriteLine("大于18,小于150");
                }
                else if (age < 18 && age > 0)
                {
                    Console.WriteLine("小于18");
                }
                else if (age <= 0)
                {
                    Console.WriteLine("还没出生");
                }
                else
                {
                    Console.WriteLine("已经死了");
                }
                
            }
            else
            {
                Console.WriteLine("身份证时间格式不正确");
            }
            Console.ReadLine();

#9


身份证号中包含了出生年月的,
这样就可以读取的,
至于
身份证号不让输入,
用二代身份证阅读器,自动提取,
这个用于 winform 中
web 不好办

#10


对,以我这么菜鸟,都觉得是个简单问题。

#11


新手求一个后台判断身份证号大于18岁的例子~前面有正则验证身份证的有效性,后台截取出生日期.不就可以了 

#12




第一、先判断身份证输入是否正确;
第二、判断身份证的长度是15位还是18位;
第三、用当前年月减去取得的年月,判断是否大于等于18.

#1


根据身份证规则啊,15位和18的身份证都是可以知道具体哪几个位置的字符串代表的是出生日期啊。。。。取到出生日期后再和当前日期对比不就能得到是不是满18岁了?

#2


判断不了,身份证可以乱填。

#3


XXXXXXyyyymmddXXXX 身份证中间yyyymmdd表示出生年月的,现在时间减出生年月求年龄呗

#4


有一个问题-> 你如何保证身份证号的准确性?

#5


新手求一个后台判断身份证号大于18岁的例子~连接到*部的数据库

#6


引用 5 楼 await2013 的回复:
连接到*部的数据库

谁让你连...

#7



当前时间 - 位置5-9
看年份是否小于18

#8



            string pid = "210532298105062562";
            string dateStr = pid.Substring(6, 8);
            dateStr = dateStr.Substring(0, 4) + "-" + dateStr.Substring(4, 2) + "-" + dateStr.Substring(6);
            DateTime birthday;
            if (DateTime.TryParse(dateStr, out birthday))
            {
                int currentYear = DateTime.Now.Year;
                int birthdayYear = birthday.Year;
                int age = currentYear-birthdayYear;
                if (age >= 18 && age < 150)//大于18,小于150
                {
                    Console.WriteLine("大于18,小于150");
                }
                else if (age < 18 && age > 0)
                {
                    Console.WriteLine("小于18");
                }
                else if (age <= 0)
                {
                    Console.WriteLine("还没出生");
                }
                else
                {
                    Console.WriteLine("已经死了");
                }
                
            }
            else
            {
                Console.WriteLine("身份证时间格式不正确");
            }
            Console.ReadLine();

#9


身份证号中包含了出生年月的,
这样就可以读取的,
至于
身份证号不让输入,
用二代身份证阅读器,自动提取,
这个用于 winform 中
web 不好办

#10


对,以我这么菜鸟,都觉得是个简单问题。

#11


新手求一个后台判断身份证号大于18岁的例子~前面有正则验证身份证的有效性,后台截取出生日期.不就可以了 

#12




第一、先判断身份证输入是否正确;
第二、判断身份证的长度是15位还是18位;
第三、用当前年月减去取得的年月,判断是否大于等于18.