Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.02.2018, 16:49
Новичок на форуме
Отправить личное сообщение для angaric Посмотреть профиль Найти все сообщения от angaric
 
Регистрация: 09.02.2018
Сообщений: 1

Помогите дополнить скрипт
Всем привет.
Есть скрипт
<script type="text/javascript">var mdate = new Date(); document.write(mdate.getFullYear()-1995);</script>

Показывает: 23

Но мне нужно 23 года. Т.е. склонение год, года, лет.

Я не спец в этом. Что нужно добавить или вставить.
Ответить с цитированием
  #2 (permalink)  
Старый 09.02.2018, 18:19
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Решение в лоб
<script type="text/javascript">
var mdate = new Date();
var years = ["лет","год","года","года","года","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","лет","год","года","года",]; // и т.д.
var age =  mdate.getFullYear()-1995;
document.write(age + " " + years[age]);
</script>


11, 12, 13, 14 лет все портят, а то можно было бы массив и подсократить - использовать декадами

Последний раз редактировалось Dilettante_Pro, 09.02.2018 в 18:25.
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2018, 18:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Dilettante_Pro,
это ваще жесть
Ответить с цитированием
  #4 (permalink)  
Старый 09.02.2018, 18:55
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

angaric,
https://javascript.ru/forum/misc/351...tml#post231512
Ответить с цитированием
  #5 (permalink)  
Старый 09.02.2018, 18:55
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

j0hnik,
Такая жисть
Ответить с цитированием
  #6 (permalink)  
Старый 09.02.2018, 18:57
BNB BNB вне форума
Интересующийся
Отправить личное сообщение для BNB Посмотреть профиль Найти все сообщения от BNB
 
Регистрация: 09.02.2018
Сообщений: 27

Решение через функцию:

//** mdate: [object Date] **//
  
  function checkAge(mdate) {
    var age =  mdate.getFullYear()-1995;
    var prefixes = {
      "0": "лет",
      "1": "год",
      "2": "года",
      "3": "года",
      "4": "года",
      "5": "лет",
      "6": "лет",
      "7": "лет",
      "8": "лет",
      "9": "лет"
    };
    
    if (age >= 11 && age <= 14) {
      document.write(age + " " + "лет");
      
      return;
    }
    
    var strAge = age + "";
    var lastNum = strAge.slice(strAge.length-1);
    
    document.write(age + " " + prefixes[lastNum]);
  }
Ответить с цитированием
  #7 (permalink)  
Старый 09.02.2018, 19:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

склонение окончаний
angaric,
<script>
var plural = function(b) {
    return function(a) {
        return b[1 == a % 10 && 11 != a % 100 ? 0 : 2 <= a % 10 && 4 >= a % 10 && (10 > a % 100 || 20 <= a % 100) ? 1 : 2]
    }
};
var d = plural([' год', ' года', ' лет'])
var mdate = (new Date()).getFullYear() - 1995;
document.write(mdate + d(mdate));
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 09.02.2018, 19:09
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<script>
f=n => n+" "+['год', 'года', 'лет'][(n%100>4 && n%100<20)?2:[2, 0, 1, 1, 1, 2][(n%10<5)?n%10:5]];  
var age = new Date().getFullYear()-1995;
document.write(f(age));
</script>

Последний раз редактировалось j0hnik, 09.02.2018 в 19:19.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите поправить скрипт меню stsepelin Элементы интерфейса 2 30.01.2014 15:11
Помогите доработать скрипт Joannes Общие вопросы Javascript 0 08.09.2013 21:21
Помогите вставить скрипт на страницу alexsio Работа 7 22.04.2013 18:19
Скрипт if помогите пЕньку NeverLux Общие вопросы Javascript 1 06.01.2011 14:33
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05