| Предыдущая версия справа и слева
Предыдущая версия
Следующая версия
|
Предыдущая версия
|
mikrotik:rb3011uias:routeros:system:scripts:functions:day_of_the_week [2020/12/08 18:36] Николай Солошин Добавлена модификация функции |
mikrotik:rb3011uias:routeros:system:scripts:functions:day_of_the_week [2022/02/12 11:40] (текущий) |
| |
| Мой вариант((В Интернете есть несколько других кейсов, но все они показались мне несколько громоздкими и, по разным сообщениям, не всегда корректно работающим. Вот ссылки на них -- [[https://wiki.mikrotik.com/wiki/Script_to_find_the_day_of_the_week|раз]], [[http://mikrotik-ukraine.blogspot.com/2015/04/routeros.html|два]] и [[https://forum.mikrotik.com/viewtopic.php?t=59029|три]]. Поэтому я разобрался в работе алгоритма -- {{ :mikrotik:rb3011uias:routeros:system:scripts:functions:соответствие_зеллера_вычисление_дня_недели_по_дате_.xlsx |Excel с примером}} -- и собрал свой велосипед. LOL)) функции, которая возвращает текущий день недели основываясь на дате. Использует модифицированный алгоритм Зеллера для программного обеспечения((Подробнее смотрите [[wp>Zeller's_congruence|по ссылке]].)). | Мой вариант((В Интернете есть несколько других кейсов, но все они показались мне несколько громоздкими и, по разным сообщениям, не всегда корректно работающим. Вот ссылки на них -- [[https://wiki.mikrotik.com/wiki/Script_to_find_the_day_of_the_week|раз]], [[http://mikrotik-ukraine.blogspot.com/2015/04/routeros.html|два]] и [[https://forum.mikrotik.com/viewtopic.php?t=59029|три]]. Поэтому я разобрался в работе алгоритма -- {{ :mikrotik:rb3011uias:routeros:system:scripts:functions:соответствие_зеллера_вычисление_дня_недели_по_дате_.xlsx |Excel с примером}} -- и собрал свой велосипед. LOL)) функции, которая возвращает текущий день недели основываясь на дате. Использует модифицированный алгоритм Зеллера для программного обеспечения((Подробнее смотрите [[wp>Zeller's_congruence|по ссылке]].)). |
| | |
| | :!: [[#модификация_функции|Добавлена]] модифицированная функция, которая возвращает массив из дня недели и текущего часа. |
| |
| ===== Комментарии к коду ===== | ===== Комментарии к коду ===== |
| :local year;</code> | :local year;</code> |
| |
| <BOOKMARK:days-array>Вводим массивы с данными. Обратите внимание в каком порядке следуют дни недели и какая нумерация у месяцев. Так должно быть согласно алгоритму. | <BOOKMARK:days_array>Вводим массивы с данными. **Обратите внимание** в каком порядке следуют дни недели и какая нумерация у месяцев. Так должно быть согласно алгоритму. |
| |
| <code> :local days {"sat";"sun";"mon";"tue";"wed";"thu";"fri";}; | <code> :local days {"sat";"sun";"mon";"tue";"wed";"thu";"fri";}; |
| ===== Модификация функции ===== | ===== Модификация функции ===== |
| |
| Модифицированная функция, которая возвращает массив из цифры дня недели и цифры часа. НАПИСАТЬ, ГДЕ ВВОДИТСЯ И ГДЕ ИСПОЛЬЗУЕТСЯ, | Модифицированная функция, которая возвращает массив из цифры дня недели и цифры часа. Удобна для использования в составе других скриптов, т.к. манипулировать цифрами намного проще. Плюс, она универсальна. Пример вывода [[#пример_использования|смотрите ниже]]. |
| | |
| | НАПИСАТЬ, ГДЕ ВВОДИТСЯ И ГДЕ ИСПОЛЬЗУЕТСЯ, |
| |
| ==== Комментарии к коду ==== | ==== Комментарии к коду ==== |
| \E0\FF \E4\E5\ED\FC \ED\E5\E4\E5\EB\E8 \E8 \E2\F0\E5\EC\FF" \ | \E0\FF \E4\E5\ED\FC \ED\E5\E4\E5\EB\E8 \E8 \E2\F0\E5\EC\FF" \ |
| dont-require-permissions=no name=day-of-week-and-time owner=vasya policy=\ | dont-require-permissions=no name=day-of-week-and-time owner=vasya policy=\ |
| ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ | read,write,policy,test source="# Written by Nikolay Soloshin (nikolay@solo\ |
| global dayAndTime do={\r\ | shin.su) for RouterOS v6.47.8 on hAP (mipsbe) @ 2020.12\r\ |
| | \n\r\ |
| | \n:global dayAndTime do={\r\ |
| \n :local date [ /system clock get date ];\r\ | \n :local date [ /system clock get date ];\r\ |
| \n :local time [ :tonum [ :pick [ /system clock get time ] 0 2 ] ];\r\ | \n :local time [ :tonum [ :pick [ /system clock get time ] 0 2 ] ];\r\ |
| \n\r\ | \n\r\ |
| \n :return \$result;\r\ | \n :return \$result;\r\ |
| \n}"</file> | \n}\r\ |
| | \n\r\ |
| | \n# With love from Vladivostok."</file> |
| |
| ===== Пример использования ===== | ===== Пример использования ===== |
| day=3;time=18</code> | day=3;time=18</code> |
| |
| //Порядок следования дней недели смотрите [[#days-array|выше]].// | //Порядок следования дней недели смотрите [[#days_array|выше]].// |
| |
| ==== Политики запуска ==== | ==== Политики запуска ==== |