zoukankan      html  css  js  c++  java
  • 计算年龄,精确到年月日

    /**
     * 计算年龄
     * @param{string} start 2019-11-1
     * @param{string} end 2019-11-1
     * >5,岁;<5 岁,月,天;<1y,月,天;<1m,天  
    */
    const getMothDay = function(year,mouth){
        return new Date(year,mouth-1,0).getDate()
    }

    const getAge = function(start,end){
        let result = ''
        let sy = start.split('-')[0]
        let sm = start.split('-')[1]
        let sd = start.split('-')[2]

        let ey = end.split('-')[0]
        let em = end.split('-')[1]
        let ed = end.split('-')[2]

        let dy = ey - sy
        let dm = em - sm
        let dd = ed - sd

        switch (true){
            case dy >= 5:
                result = dy + '年';
                console.log('dy >= 5')
            break;
            case dy < 5 && dy >=1:
                if(dd < 0) {
                    dm = dm -1
                }

                if(dm<0) {
                    dy = dy-1;
                    dm = 12 + dm
                    result = dy + '岁' + dm + '月';
                } else if(dm > 0){
                    result = dy + '岁' + dm + '月';
                } else {
                    result = dy + '岁';
                }

                if(dd < 0) {
                    dd = getMothDay(sy, sm) + dd
                    result = dy + '岁' + dm + '月' + dd + '天';
                } else if(dd > 0) {
                    result = dy + '岁' + dm + '月' + dd + '天';
                } else {
                    result = dy + '岁' + dm + '月';
                }
                console.log('dy < 5 && dy >=1:')
              break;
              case (dy < 1):
                    if(dd < 0) {
                        dm = dm -1
                    }
        
                    if(dm > 0){
                        result = dm + '月';
                    }
        
                    if(dd < 0) {
                        dd = getMothDay(sy, sm) + dd
                        result = result + dd + '天';
                    } else if(dd > 0) {
                        result = result + dd + '天';
                    } else {
                        result = dd + '天'
                    }
                break;
            default:
              result = '-1'
              break;
        }

        return result
    }
  • 相关阅读:
    algorithm@ O(3/2 n) time to findmaximum and minimum in a array
    algorithm@ lower_bound implementation(Binary Search)
    leetcode@ [241] Different Ways to Add Parentheses (Divide and Conquer)
    java@ 利用ArrayList实现dijkstra算法以及topological 排序算法(java.util.ArrayList)
    leetcode@ [329] Longest Increasing Path in a Matrix (DFS + 记忆化搜索)
    Dubbo服务重载方法在JDK1.8上调用出错的问题(待解决)
    数据结构之线性表-链式存储之循环链表(三)
    数据结构之线性表-链式存储之静态链表(二)
    网络知识小笔记
    书中自有颜如玉,书中自有黄金屋(尼采篇)
  • 原文地址:https://www.cnblogs.com/lizhiwei8/p/11822232.html
Copyright © 2011-2022 走看看