Новые функции онлайн калькулятора
Добрый день.
Продолжаем улучшать наш конструктор веб-форм и калькуляторов, и добавлять все новые и новые функции. Сегодня хотим рассказать о новых математических функциях, которые теперь можно использовать в своих формулах для расчетов, а их накопилось немало.
На данный момент в своих расчетах можно использовать вот такие функции:
round() | Возвращает число, округлённое к ближайшему целому |
ceil() | Округляет число до ближайшего большего целого |
floor() | Округляет число до ближайшего меньшего целого |
roundUp() | Округляет число до ближайшего числа, кратного заданному |
min() | Возвращает наименьшее из нескольких чисел |
max() | Возвращает наибольшее из нескольких чисел |
medium() | Возвращает среднее из нескольких чисел |
today() | Возвращает количество секунд от текущей даты |
datetime() | Возвращает количество секунд от текущей даты и времени |
strlen() | Возвращает количество символов в строке |
pow() | Возведение числа в степень |
ln() | Натуральный логарифм |
lg() | Десятичный логарифм |
log() | Логарифм числа по произвольному основанию |
sin() | Синус угла в радианах |
cos() | Косинус угла в радианах |
tan() | Тангенс угла в радианах |
ctg() | Котангенс угла в радианах |
mod() | Остаток от деления двух чисел |
countYears() | Возвращает количество лет от разности двух дат |
countMonths() | Возвращает количество месяцев от разности двух дат |
countDays() | Возвращает количество дней от разности двух дат |
year() | Извлекает год из даты |
month() | Извлекает месяц из даты |
day() | Извлекает день из даты |
countRemainingDays() | Возвращает количество оставшихся дней от разности двух дат |
countRemainingMonths() | Возвращает количество оставшихся месяцев от разности двух дат |
date() | Возвращает количество секунд от даты из переданных параметров (год, месяц, день) |
dateValue() | Возвращает суммарное число всех цифр даты |
С некоторыми функциями вы уже знакомы из наших прошлых статей. Сегодня же мы хотели подробно остановиться вот на этих функциях: roundUp(), mod(), countYears(), countMonths(), countDays(), year(), month(), day(), countRemainingDays(), countRemainingMonths(), date(), dateValue().
Большинство из этих функций добавляют новые возможности при работе с датой. Но обо всем по порядку.
dateValue(date)
Данная функция возвращает суммарное число всех цифр даты. Обычно это используется в нумерологии, чтобы посчитать число даты рождения. Пример:
dateValue('1985-08-20') = 1 + 9 + 8 + 5 + 0 + 8 + 2 + 0 = 33 = 3 + 3 = 6
roundUp(a, b)
Данная функция округляет число a до ближайшего большего числа, кратного числу b. Пример:
roundUp(4, 3) = 6; roundUp(5, 3) = 6; roundUp(7, 3) = 9.
mod(a, b)
Данная функция возвращает остаток от деления числа a на число b. Пример:
mod(10, 3) = 1; mod(10, 2) = 0; mod(35, 4) = 3.
Если число b = 1, а число a дробное, то функция mod() возвращает дробную часть числа a:
mod(3.45, 1) = 0.45.
countYears(date1, date2)
Данная функция возвращает количество полных лет от разности двух дат: date1 и date2. Пример:
countYears('2022-01-25', '2020-01-25') = 2; countYears('2022-01-25', '2020-01-26') = 1; //(не хватает одного дня для полных двух лет) countYears('2022-01-25', '2019-06-26') = 2;
countMonths(date1, date2)
Данная функция возвращает количество полных месяцев от разности двух дат: date1 и date2. Пример:
countMonths('2022-01-25', '2021-11-25') = 2; countMonths('2022-01-25', '2019-06-26') = 30.
countDays(date1, date2)
Данная функция возвращает количество дней от разности двух дат: date1 и date2. Пример:
countDays('2022-01-25', '2021-12-25') = 31; countDays('2022-01-25', '2019-06-26') = 944.
year(date)
Данная функция извлекает год из даты. Пример:
year('2022-01-25') = 2022; year('1985-11-03') = 1985.
month(date)
Данная функция извлекает месяц из даты. Пример:
month('2022-01-25') = 1; month('1985-11-03') = 11;
day(date)
Данная функция извлекает день из даты. Пример:
day('2022-01-25') = 25; day('1985-11-03') = 3;
countRemainingDays(date1, date2)
Данная функция возвращает количество оставшихся дней от разности двух дат, за вычетом полных лет и месяцев. Эту функцию очень удобно использовать при расчёте возраста пользователя по дате рождения. Пример:
countRemainingDays('2022-01-25','1985-08-20') = 5; countRemainingDays('2022-01-25','1985-08-25') = 0; countRemainingDays('2022-01-25','1985-08-26') = 30;
countRemainingMonths(date1, date2)
Данная функция возвращает количество оставшихся месяцев от разности двух дат, за вычетом полных лет и дней. Эту функцию очень удобно использовать при расчёте возраста пользователя по дате рождения. Пример:
countRemainingMonths('2022-01-25','1985-08-20') = 5; countRemainingMonths('2022-01-25','1985-01-20') = 0; countRemainingMonths('2022-01-25','1985-04-24') = 9; countRemainingMonths('2022-01-25','1985-04-26') = 8;
date(year, month, day)
Данная функция формирует дату из переданных параметров (год, месяц, день), которую можно использовать в других функциях и расчетах (любая дата конвертируется в метку unix timestamp - количество секунд, прошедших с полуночи 1 января 1970 года).
Давайте рассмотрим несколько реальных примеров из жизни.
Сколько дней осталось до Нового года?
В качестве примера, рассчитаем, сколько дней осталось до Нового года. В этом нам помогут функции: countDays(date1, date2), today() и year().
Как вы помните, функция countDays(date1, date2) возвращает количество дней от разности двух дат. В нашем случае:
- date1 - дата Нового года
- date2 - текущая дата
В самом простом случае наша формула будет выглядеть вот так:
countDays(date(2022,12,31), today())
Но это не очень удобно, так как год 2022 у нас прописан вручную и его нужно будет менять на 2023 через 1 год, чтобы все корректно считалось. Но здесь нам на помощь приходит функция year() которая извлекает год из даты. Используя эту функцию мы можем переписать нашу формулу следующим образом:
countDays(date(year(today()),12,31), today())
Т.е. используя запись year(today()) - мы динамически получаем год из текущей даты. Точно также можно комбинировать и все остальные функции.
Сколько дней осталось до дня рождения?
Давайте рассмотрим еще один пример: пользователь в форме вводит свою дату рождения и нам нужно посчитать, сколько дней осталось до его ДР. В этом нам помогут все те же функции, которые мы рассматривали в прошлом примере, а именно countDays(date1, date2) возвращает количество дней от разности двух дат. В нашем случае:
- date1 - здесь нам нужно сформировать дату, где день и месяц будет указан тот, который пользователь ввел в форму, а год необходимо использовать текущий. Например, если дата рождения 1985-08-20, то нам необходимо получить такую дату: 2022-08-20 и именно до этой даты нужно считать количество оставшихся дней.
- date2 - текущая дата
Итак, наша формула может выглядеть вот так:
countDays(date(year(today()), month(поле1), day(поле1)), today())
Где поле №1 - это поле из формы, куда пользователь вводит свою дату рождения.
На сегодня это все. А каких функций не хватает вам, для ваших калькуляторов?