/* 根据出生日期算出年龄*/
export function getAgeBirth(strBirthday) {let returnAgeconst strBirthdayArr = strBirthday.split('-')const birthYear = strBirthdayArr[0]const birthMonth = strBirthdayArr[1]const birthDay = strBirthdayArr[2]const d = new Date()const nowYear = d.getFullYear()const nowMonth = d.getMonth() + 1const nowDay = d.getDate()if (nowYear === birthYear) {returnAge = 0// 同年 则为0岁} else {const ageDiff = nowYear - birthYear // 年之差if (ageDiff > 0) {if (nowMonth === birthMonth) {const dayDiff = nowDay - birthDay// 日之差if (dayDiff < 0) {returnAge = ageDiff - 1} else {returnAge = ageDiff}} else {const monthDiff = nowMonth - birthMonth// 月之差if (monthDiff < 0) {returnAge = ageDiff - 1} else {returnAge = ageDiff}}} else {returnAge = '0'// 返回-1 表示出生日期输入错误 晚于今天}}return returnAge// 返回周岁年龄
}// 获取最近几天日期
export function timeForMat(count) {const date = new Date()const nowDate = processingTime()const LDate = new Date(date - 1000 * 60 * 60 * 24 * count)const year = LDate.getFullYear()const month = LDate.getMonth() + 1const day = LDate.getDate()const temp = {startTime: year + '/' + (month < 10 ? '0' + month : month) + '/' + (day < 10 ? '0' + day : day),endTime: nowDate}return temp
}// 实现自动生成生日,性别,年龄
export function go(val) {const iden = vallet sex = nulllet birth = nullif (val.length === 18) {sex = iden.substring(16, 17)birth = iden.substring(6, 10) + '/' + iden.substring(10, 12) + '/' + iden.substring(12, 14)}if (val.length === 15) {sex = iden.substring(13, 14)birth = '19' + iden.substring(6, 8) + '/' + iden.substring(8, 10) + '/' + iden.substring(10, 12)}if (sex % 2 === 0) { sex = '女' } else { sex = '男' }return {sex,birth}
}/*** 判断此对象是否是Object类型* @param {Object} obj*/
function isObject(obj) {return Object.prototype.toString.call(obj) === '[object Object]'
}
/*** 判断此类型是否是Array类型* @param {Array} arr*/
function isArray(arr) {return Object.prototype.toString.call(arr) === '[object Array]'
}
/***  深度比较两个对象是否相同* @param {Object} oldData* @param {Object} newData*/
export function equalsObj(oldData, newData) {// 类型为基本类型时,如果相同,则返回trueif (oldData === newData) return trueif (isObject(oldData) && isObject(newData) && Object.keys(oldData).length === Object.keys(newData).length) {// 类型为对象并且元素个数相同// 遍历所有对象中所有属性,判断元素是否相同for (const key in oldData) {if (oldData.hasOwnProperty(key)) {if (!equalsObj(oldData[key], newData[key])) {// 对象中具有不相同属性 返回falsereturn false}}}} else if (isArray(oldData) && isArray(newData) && oldData.length === newData.length) {// 类型为数组并且数组长度相同for (let i = 0, length = oldData.length; i < length; i++) {if (!equalsObj(oldData[i], newData[i])) {// 如果数组元素中具有不相同元素,返回falsereturn false}}} else {// 其它类型,均返回falsereturn false}// 走到这里,说明数组或者对象中所有元素都相同,返回truereturn true
}

【js】根据出生日期算出年龄,获取最近几天日期,实现身份证计算生日,性别,年龄,深度比较两个对象是否相同相关推荐

  1. C# 获取身份证中的性别/年龄

    获取身份证中的性别,代码如下: public static bool GetGenderByIdCard(string idCard) {if (string.IsNullOrWhiteSpace(i ...

  2. C#根据身份证号码,计算生日、年龄、性别

    朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的 ...

  3. js简单实现根据身份证号码识别性别年龄生日

    function discriCard(){ //获取输入身份证号码 var UUserCard = ""; //获取出生日期 UUserCard.substring(6, 10) ...

  4. python通过经纬度算出距离_Python中如何利用经纬度进行距离计算

    前些天由于工作中需求,要计算经纬度之间的距离,当我去网上搜索距离计算的方法时,发现很多文章中的方法乍一看都是很不同的,同是进行距离计算,为啥这么不一样呢?后来才发现问题在于很多文章没有进行相关的原理说 ...

  5. Python 根据身份证号计算生日,年龄和性别

    (没有考虑身份证输入错误的情况,也没有将年龄的计算精确到月数...会再尝试一下滴) 生日 切片 切片是从字符串中取出某个区间的字符,采用str[start:end:step]形式 start 切片开始 ...

  6. sql抽取身份证信息生日,年龄,星座,属性,

    提取内容:birthday,age,sex,property(属性),constellation(星座),province,age_group,six_idcard,census_register i ...

  7. js小技巧:根据身份证号,获取身份信息。如性别、生日、年龄

    根据输入的身份证号,返回身份证信息 如 性别 sex.生日 birthDay.年龄 age. 方法如下: // 返回身份证信息 如 性别 sex.生日 birthDayfunction getCard ...

  8. 根据出生年月日算出实际的月龄

    工具类 /*** 根据出生日期算出月龄*/public static Integer getMouthAge(Date birth){if(null == birth){return 0;}Calen ...

  9. 科学计算机可以用多久,科学家公布寿命计算器!3分钟算出你还能活多久

    原标题:科学家公布寿命计算器!3分钟算出你还能活多久 寿命也能计算? 为什么有的人能长命百岁? 为什么有的人却年过半百就去世? 寿命当然无法完全准确地计算出来,但却能根据每个人的生活和健康情况,做出预 ...

最新文章

  1. 基于Android和SpringBoot的购物App
  2. 行业观察 | 全球IoT云平台第一股诞生,IoT离爆发还有多远?
  3. 国内大陆芯片70个细分领域重要代表企业!
  4. 04-java学习-选择结构
  5. .net你不行——是你的父亲把你封装的太死,还是你的子孙们太懒,未把你发扬光大。...
  6. 简介Linux磁盘管理与文件系统
  7. 一起谈.NET技术,Visual Studio自定义调试窗体两个小技巧
  8. python 读取sqlite存入文件_如何通过python读取sqlite数据文件
  9. python协程asyncio 应用_Python-如何使用asyncio同时运行多个协程?
  10. yii2 的 restful 接口书写自定义方法
  11. NOIP201501金币
  12. RTOS原理与实现10:互斥信号量实现
  13. request获取各种路径记录
  14. 你真的会用Jupyter吗?这里有7个进阶功能助你效率翻倍
  15. 数学分析教程(科大)——1.11笔记+习题
  16. 移动商务进入战国时代 08年市场规模达306.5亿
  17. 商品详情页实现价格区间价
  18. YML(YAML)语法(文件后缀为.yml格式)
  19. PDF转CAD的dwg和dxf两种标准格式
  20. 程序员眼中的编程语言和操作系统

热门文章

  1. GOF-Java基础知识和J2EE框架知识之间一座隐性的桥
  2. 我的世界1.8.1java下载_我的世界1.8.1.2版本
  3. Python的三种引号
  4. 理性分析一下人脑的极限
  5. 义乌个体户账户还可以绑定哪些主流平台结汇
  6. 动图解析,自由泳最容易出现的5个错误动作
  7. Linux网络——网桥设置管理
  8. Linux 文件打包压缩常用命令(笔记,搜录自网络和文档)
  9. MYSQL常用命令大全(导入导出、创建、单多表查询(超详细)、授权)
  10. 大胡子的编程语言更流行?