通过身份证计算出出生日期、年龄和性别

通过身份证计算出出生日期、年龄和性别

有时候我们需要通过身份证来计算这个人的出生日期、性别和年龄,下面的方法就可以实现这个需求。

const analyzeIdCard = idCard => {
  console.log(typeof idCard);
  console.log(idCard);
  let birthday = idCard.substring(6, 14);
  let gender = parseInt(idCard.charAt(16)) % 2 === 0 ? "女" : "男";
  let birthYear = parseInt(birthday.substring(0, 4));
  let birthMonth = parseInt(birthday.substring(4, 6));
  let birthDay = parseInt(birthday.substring(6, 8));
  let currentYear = new Date().getFullYear();
  let currentMonth = new Date().getMonth() + 1; // 月份从 0 开始,需要加 1
  let currentDay = new Date().getDate();
  let age = currentYear - birthYear;
  // 如果当前月份小于出生月份,或者当前月份等于出生月份但当前日期小于出生日期,则年龄减一
  if (currentMonth < birthMonth || (currentMonth === birthMonth && currentDay < birthDay)) {
    age--;
  }
   // 创建包含birthday ,age 和 gender 的对象
  let analysisResult = {
  birthday: birthday ,
    age: age,
    gender: gender
  };
  return analysisResult; // 返回包含birthday ,age 和 gender的对象
};
--------------------------------------------------------------------
下面是关于该方法的使用:
let result = analyzeIdCard('身份证号')
console.log(result.age,'年龄');
console.log(result.gender,'性别');
console.log(result.birthday,'生日');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值