Дописывать приставку к возрасту

182
19 мая 2017, 13:28

Есть такой код, который считает возраст:

var today = new Date();
var yyyy = today.getFullYear();
var Name = question2[1].FIO + '(' + (yyyy - question2[1].Age)+')';

Но вот в чем задачка, нужно дописывать, лет, год и т.д

Как это реализовать?

Answer 1

Смотрим по предпоследней цифре: если 1 - лет иначе по последней цифре: 1 - год, 2-4 года, остальное - лет.

var years = [ 1822,1922,1948,1990,1995,1996,2008,2014,2016 ] 
 
years.forEach(function(year){ 
  let thisYear = new Date().getFullYear(); 
  let yearsOld = thisYear - year; 
  document.write(yearsOld + " " + getYearAddition(yearsOld) + "<br>"); 
}); 
 
function getYearAddition(year) { 
    let preLastDigit = Math.floor(year % 100 / 10); 
    if (preLastDigit === 1) { 
        return "лет"; 
    } 
 
    let lastDigit = year % 10; 
    switch (lastDigit) { 
        case 1: 
            return "год"; 
        case 2: 
        case 3: 
        case 4: 
            return "года"; 
        default: 
            return "лет"; 
    } 
}

Answer 2

Решение с moment.js Durations и i18n

var years = [ 1822,1922,1948,1990,1995,1996,2008,2014,2016 ] 
years.forEach(function(year){ 
  let yearsOld = moment().diff(moment([year]), 'year'); 
  let yearsOldHumanized = moment.duration(yearsOld, 'years').humanize(); 
  document.write(yearsOldHumanized + "<br>"); 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/locale/ru.js"></script>

READ ALSO
Вёрстка html письма в Outlook

Вёрстка html письма в Outlook

Подскажите, может кто сталкивался, есть ли возможность сделать картинку фоном для письма в OutlookТакой пример не работает:

377
Изменение кнопок слайдера [требует правки]

Изменение кнопок слайдера [требует правки]

Как изменить картинки переключателей слайдера в htmL?

343
Просмотр карты в unity3d

Просмотр карты в unity3d

Unity3dЕсть UI Image - карта

211