根据身份证号中的日期判断某人是否已满18岁及是否已满60岁
2014-07-28 12:49
507 查看
在网上看到一个这样的算法,初时感觉很巧妙,
后来觉得似乎有问题:
比如说:假定今天是2014年7月28日,某人1954年7月28日出生,根据这样算法得到的结果是:21915/365=60.04109589041096,大于60。如果1954年7月29日出生,在你我看来,此人不满60岁,而得到的结果是21914/365=60.03835616438356,仍然大于60,显然不正确
好吧,按照人类的思路:
View Code
已满60岁同理
if (DateTime.Now.Subtract(time).Days / 365 >60)
后来觉得似乎有问题:
比如说:假定今天是2014年7月28日,某人1954年7月28日出生,根据这样算法得到的结果是:21915/365=60.04109589041096,大于60。如果1954年7月29日出生,在你我看来,此人不满60岁,而得到的结果是21914/365=60.03835616438356,仍然大于60,显然不正确
好吧,按照人类的思路:
private static bool IsAdult(DateTime birthday) { DateTime now = DateTime.Now; if (now.Year - birthday.Year < 18)//如果年份小于18,直接返回false,未成年 { return false; } else if (now.Year - birthday.Year == 18)//如果年份差等于18,则比较月份 { if (now.Month > birthday.Month)//年份等于18时,当前月份小于出生月份,则返回false,未成年 { return false; } else if (now.Month == birthday.Month) //如果月份也相等,则比较日期 { if (now.Day > birthday.Day) //年份等于18,月份相等时,如果当前日期小于出生日期,则返回false,未成年 { return false; } } } return true; }
View Code
已满60岁同理
相关文章推荐
- 如何用DataGrid实现根据日期判断是否显示New标志
- Android工具类,一些方法电话正则,是否为空,日期格式化,星期,车牌,身份证校验,设置地区编码,验证日期字符串是否是YYYY-MM-DD格式,判断字符串是否为数字
- 判断日期是否过期,以及根据日期判断周几
- 校验出生日期,校验身份证格式,校验会员账户:9开头数字,校验手机号码是否合法,判断字符串中的url是否都是图片格式字符串,通过图片url读取图片并将图片转换成base64编码
- C# 根据身份证号码判断出生日期和性别
- C# 根据身份证号码判断出生日期和性别
- C# 根据身份证号码判断出生日期和性别
- 根据weekNo(本周为0,上周为-1,下周为1),week(Calendar.XXX)获取日期,以及根据weekNo和week判断今天是否是该日期
- 根据身份证号 查询是否满18岁
- PHP 根据身份证号码,获取性别、获取生日、计算年龄、获取地址、获取生肖、获取星座、以及判断是否是身份证号
- 如何用DataGrid实现根据日期判断是否显示New标志
- C#根据身份证号码判断出生日期和性别
- iOS - 正则表达式判断邮箱,身份证,手机,车牌号...验证是否正确
- 用CompareValidator来判断日期是否正确好用多了,省得巨长的与正则表达式
- checkbox 全选反选 可以根据小项判断大项是否勾选
- 判断两个日期是否相同
- js判断日期是否是指定月份最后一天
- java 判断日期是否是节假日
- 判断日期是否到期
- C#判断日期是否到期的方法