Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 05.05.2017, 14:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Rise
02.05 12:34 - 05.05 14:40
function pl(a, c) {
    var b = c[0],
        d = c[1],
        e = c[2];
    return a + (1 == a % 10 && 11 != a % 100 ? b : 2 <= a % 10 && 4 >= a % 10 && (10 > a % 100 || 20 <= a % 100) ? d : e) + " "
}
var st = [
    [" \u0433\u043e\u0434", " \u0433\u043e\u0434\u0430", " \u043b\u0435\u0442"],
    [" \u043c\u0435\u0441\u044f\u0446", " \u043c\u0435\u0441\u044f\u0446\u0430", " \u043c\u0435\u0441\u044f\u0446\u0435\u0432"],
    [" \u0434\u0435\u043d\u044c", " \u0434\u043d\u044f", " \u0434\u043d\u0435\u0439"],
    [" \u0447\u0430\u0441", " \u0447\u0430\u0441\u0430 ", " \u0447\u0430\u0441\u043e\u0432 "],
    [" \u043c\u0438\u043d\u0443\u0442\u0430", " \u043c\u0438\u043d\u0443\u0442\u044b", " \u043c\u0438\u043d\u0443\u0442"]
];

function passed(a, c, b, d, e) {
    var f = new Date(a, c - 1, b, d, e, 0, 0),
        g = new Date;
    for (c = 0;; c++) {
        a = new Date(f.getFullYear(), f.getMonth() + 2, 0, d, e, 0, 0);
        a.getDate() > b && a.setDate(b);
        if (a > g) break;
        f = a
    }
    b = g - f;
    d = b % 864E5 / 36E5 | 0;
    e = (b % 864E5 / 6E4 | 0) % 60;
    b = Math.floor(b / 864E5);
    a = Math.floor(c / 12);
    return "\u043f\u0440\u043e\u0448\u043b\u043e: " + [a, c % 12, b, d, e].reduce(function(a, b, c) {
        return b ? a + pl(b, st[c]) : a
    }, "")
};
alert(passed(2017, 5, 2, 12, 34 ));

у меня только три дня и никакого 1 месяца
Ответить с цитированием
  #12 (permalink)  
Старый 05.05.2017, 14:27
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

рони, согласен.
Ответить с цитированием
  #13 (permalink)  
Старый 05.05.2017, 14:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Rise
что-то пошло не так
1 месяц
24 января - 24 февраля
2 месяц
24 февраля - 24 марта
3 месяц
24 марта - 24 апреля
25, 26, 27, 28, 29, 30, 1, 2, 3 , 4, 5!!!(время больше 12:34) - 11 дней уже
почему так, тред по ссылке Расчет возраста

хочется проще - можно делить разницу между датами на условный месяц (30 дней или 31 или 30.45)
Ответить с цитированием
  #14 (permalink)  
Старый 05.05.2017, 15:13
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

рони, хочется точнее имхо оба подхода неверные и "пробрасывание числа" и "условный месяц", мой подход "по календарю" и логичный и точный.
Ответить с цитированием
  #15 (permalink)  
Старый 05.05.2017, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от Rise
мой подход "по календарю" и логичный и точный.
тоже самое могу сказать про "свой"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать сколько времени прошло? Black_Star jQuery 10 23.04.2017 20:44
Сколько прошло времени от начала отсчета? xmlns Общие вопросы Javascript 6 23.02.2015 14:30
Нужен скрипт для счета времени с текущего момента Julius123 Javascript под браузер 9 05.11.2014 20:35
Сколько у Вас есть свободного времени на работе? Duda.Ml1986@gmail.com Оффтопик 37 22.02.2012 11:56
Сколько времени нужно одному типу, чтобы написать движок форума? Alex455 Оффтопик 17 22.05.2011 11:14