titov_andrei
@titov_andrei
All my life I learn - and die a fool!

Как узнать, что за входящий параметр в функции, в чужом коде?

В функции yearsDiff(dt)
@dt - что это за значение?
// @passportDate - дата выдачи паспорта
// @dudeDate - дата рождения чувака
function checkPassportDate(passportDate, dudeDate)
{
    var dob = new Date(dudeDate.replace(/(\d{2}).(\d{2}).(\d{4})/, "$3-$2-$1"));
    var pssprtDate = new Date(passportDate.replace(/(\d{2}).(\d{2}).(\d{4})/, "$3-$2-$1"));

    var pDate20 = new Date(dob);
    pDate20.setFullYear(pDate20.getFullYear() + 20);
    var pDate45 = new Date(dob);
    pDate45.setFullYear(pDate45.getFullYear() + 45);

    var ageDude = parseInt(yearsDiff(new Date(dudeDate.replace(/(\d{2}).(\d{2}).(\d{4})/, "$3-$2-$1"))));

    // первая смена паспорта
    if (ageDude >= 20 && ageDude < 45) {
        if (pssprtDate < pDate20) { return false; }
    }

    // вторая смена паспорта
    if (ageDude >= 45) {
        if (pssprtDate < pDate45) { return false; }
    }

    return true;
}

// разница в годах между текущей датой и @dt
function yearsDiff(dt)
{
    if (dt > new Date()) { return 0; }

    var crntDate = new Date();

    var yearDiff = parseInt(crntDate.getFullYear() - dt.getFullYear());
    
    // прошёл уже текущий год или ещё нет
    var dat4check = new Date(dt);
    dat4check.setFullYear(crntDate.getFullYear());
    if (dat4check > crntDate) { yearDiff--; }

    if (yearDiff <= 0) { return 0; }

    if (yearDiff === 1)
    {
        var monthDiff = parseInt(crntDate.getMonth() - dt.getMonth());
        if (monthDiff >= 0)
        {
            if (monthDiff == 0) {
                var dayDiff = parseInt(crntDate.getDate() - dt.getDate());
                if (dayDiff > 0) { return yearDiff; }
                else { return 0; }
            }
            else {
                return crntDate.getFullYear() - dt.getFullYear();
            }
        }
        else { return 0; }
    }
    else { return yearDiff; }
}
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
@res2001
Developer, ex-admin
Тут dt - объект типа Date, учитывая как она используется в коде.
А вообще смотрите как вызывается интересующая вас функция.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега JavaScript
Руководитель frontend направления, предприниматель
1. Прочитать код, понять его.
2. Понять, что автор поленился придумать название для людей.
3. Принять это, смириться с ним и жить дальше.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы