qq_43411615 2021-07-13 19:49 采纳率: 50%
浏览 594
已采纳

已知年龄通过js计算出生年月

已知年龄通过js计算出生年月
列 【5岁6个月15天】,
算出生日期

一年十二月,月份位做十二进制减法即可,不足借一,一当12,如:1减4,不够,借一,1+12-4=9

  • 写回答

3条回答 默认 最新

  • 广大菜鸟 2021-07-14 13:42
    关注

    function getBirthDay(age){
    // 转换为数字
    const subYear = parseInt(age.substring(age.indexOf("岁")-1));
    const subMonth = parseInt(age.substring(age.indexOf("月")-1));
    const subDay = parseInt(age.substring(age.indexOf("日")-1));
    const now = new Date();
    const nowYear = now.getFullYear();
    const nowMonth = now.getMonth();
    const nowDay = now.getDay();
    // 按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。
    var day = nowDay - subDay;
    var month = nowMonth - subMonth;
    var year = nowYear - subYear;
    // 检查是否溢出
    if(day<0){
    // 获得上月的天数
    var lastMonth = nowMonth - 1;
    var lastMonthOfYear = nowYear;
    if(lastMonth<0){
    lastMonth = (lastMonth + 12) % 12;
    lastMonthOfYear = lastMonthOfYear - 1;
    }
    day = day + new Date(lastMonthOfYear, lastMonth, 0 ).getDate();
    month = month - 1;
    }
    if(month<0){
    month = (month + 12) % 12;
    year--;
    }
    console.log(year+'年'+month+'月'+day+'日')
    }
    getBirthDay("2岁3月8日");

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已采纳回答 7月14日
  • 提问应符合社区要求 7月13日
  • 创建了问题 7月13日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line