Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание функции для гугл таблиц на JS (https://javascript.ru/forum/misc/73052-sozdanie-funkcii-dlya-gugl-tablic-na-js.html)

ronin 17.03.2018 18:02

Создание функции для гугл таблиц на JS
 
Нужно создать особую пользовательскую функцию для гугл таблиц.
У гугла есть Google Script, утилита для написания кода, например функций для таблиц, она работает на JS.
Вроде функция была дописана, но в самих таблицах она не работает. Не выдаёт даже ошибки, просто пустая клеточка.
Может кто знает как пофиксить, буду очень благодарен.
Ниже прилагаю скриншоты и сам код.



function EmsOnline (a, b, c, d)
{
var f;
f = (((c*60)+d)-((a*60)+b));

if (f % 60 >= 0.5) {
EmsOnline == (f+(1-(f%60)))
}
if (f % 60 < 0.5) {
EmsOnline == (f-(f%60))
}
}


P.S. Для лучшего понимания вопроса объясню. Функция рассчитывает время, которое человек находиться на сервере, таблица используется как график дежурств, a:b - ЧасНачала:МинутыНачала дежурства, c:d - ЧасОкончания:МинутыОконча ия дежурства, функция должна переводить часы в минуты, рассчитывать сколько минут человек находился на сервере, переводить эти минуты в часы, и округлять то кол-во времени, в часах, по правилам округления математики. Округлённое кол-во часов должно выводиться в клеточку.

j0hnik 17.03.2018 18:17

EmsOnline == (f+(1-(f%60)))
тут точно сравнение???
как бы функция итак ничего не возвращает.

ronin 17.03.2018 18:21

Цитата:

Сообщение от j0hnik (Сообщение 480803)
EmsOnline == (f+(1-(f%60)))
тут точно сравнение???
как бы функция итак ничего не возвращает.

Я просто не разбираюсь в JS никак, в инете увидел что == это равно.
Но поставить == или даже =, всё равно не работает ;(

+не разбираюсь в проф.сленге, в названиях операторов и во всём таком вообще нисколько

j0hnik 17.03.2018 18:33

думаю эта задача под силам excel без всякого js. какой должен быть результат?

ronin 17.03.2018 18:38

Цитата:

Сообщение от j0hnik (Сообщение 480806)
думаю эта задача под силам excel без всякого js. какой должен быть результат?

Exel то она под силу, но вот чтобы засунуть функцию в гугл таблицы нужно через google script это делать, а значит через js.
Конечный результат - сокращение формулы
=Round((((b*60)+c)-((a*60)+b))/60)
до одной функции, для удобства.
О том что делает эта формула писал в теме.

j0hnik 17.03.2018 18:54

function EmsOnline (a, b, c, d) {
var f = (c*60+d)-(a*60+b); 
return f % 60 >= 0.5? f+(1-(f%60)):f-(f%60);
}

alert(EmsOnline(14, 30, 16, 40));


вот функция, как интегрируются подсказать не смогу, не пользовался сервисом.

ronin 17.03.2018 18:58

Цитата:

Сообщение от j0hnik (Сообщение 480809)
function EmsOnline (a, b, c, d) {
var f = (c*60+d)-(a*60+b); 
return f % 60 >= 0.5? f+(1-(f%60)):f-(f%60);
}

alert(EmsOnline(14, 30, 16, 40));


вот функция, как интегрируются подсказать не смогу, не пользовался сервисом.

Пишет
ReferenceError: Объект "alert" не определен. (строка 6, файл Код)

j0hnik 17.03.2018 19:03

function EmsOnline (a, b, c, d) {
var f = (c*60+d)-(a*60+b); 
return f % 60 >= 0.5? f+(1-(f%60)):f-(f%60);
}

=EmsOnline(a16, b16, c16, d16);


alert был для демонстрации

ronin 17.03.2018 19:08


:-?

j0hnik 17.03.2018 19:11

EmsOnline(a16, b16, c16, d16);

без = попробуйте


Часовой пояс GMT +3, время: 19:45.