- Регистрация
- 20.04.2015
- Сообщения
- 6 095
- Благодарностей
- 6 496
- Баллы
- 113
Привет, тут максимально просто и подробно постараюсь описать, как работать со временем и зачем это надо. Это только личный опыт и личное мнение.
Небольшое вступление.
Время нам помогает делать различные логические проверки. Например у нас есть база данных в виде таблицы (таблица проще для новичков и маленьких проектов нет десятков и сотен тысяч строк)
И нам надо запускать аккаунт через определенное время, например раз в сутки (через 24 часа), вы скажите, так есть же расписание, оно может тут помочь, а вот и нет, отвечу я ))
Потому как не всегда проходит нужное время по планировщику для того или иного аккаунта. Поэтому расписание можно настроить на запуск каждую минуту, но это в итоге будет не верно, ворно будет сделать отдельный шаблон - Менеджер, который и будет все это отслеживать.
Всегда лучше и проще записывать время рядом с нужным событием/аккаунтом
В дальнейшем мы берем строку аккаунта, берем время, когда были закончены с ним работы и только тогда проверяем прошли ли сутки для него или нет. Для гугла в свое время это было очень важно.
Теперь к практике и применению.
Я для себя в то время, когда столкнулся с этой проблемой, решил, что время стоит использовать для работы только в UnixTime формате (секунды) самый точный вариант как по мне.
взять время в UnixTime в данный момент - основной сниппет
В переменной будет примерно такое - 1701861814 - это время в секундах на данный момент
Все. теперь от этого времени можно плясать в любые стороны.
Например нам надо проверит прошли ли сутки, при взятии аккаунта.
Логика такая:
1. В конце работы шаблона, перед записью в таблицу, берем этим снипом время и записываем в БД
2. В начале работы с аккаунтом берем строку из БД и проверяем переменную со временем
А как это сделать? Просто!
в сутках 24 часа, в 1 часе 60 мин, в 1 мин 60 сек
60*60 = 3600 сек в 1 часе
36000*24 = 86400 сек в 1 сутках
Соответственно берем переменную время конца работы и проверяем в кубике IF
Надо взять время (timeStart), которое сейчас (в момент проверки), взять время (timeEnd) окончания шаблона вычесть одно из другого и проверить
выглядит это так
То есть получается, если сутки прошли, то выйдет по зеленой, если нет, то по красной ветке. Этот метод очень гибкий, можно использовать везде.
Еще пример.
Например нам надо знать сколько времени занимает работа шаблона, чтобы примерно представлять среднее время. Чтоб в будущем оптимизировать/останавливать шаблон.
Можно оставить простую математику t1 - t2 получаем сколько работал шаблон в секундах, но можно сделать более человеческий вид.
Нам поможет сниппет
где timeStart - это время начала работы шаблона
выглядит это так
Так же часто встречаю такие темы как: Как вычесть неделю от даты, Как добавить час времени, Как прибавить10 дней.
С unixTime это лишь простейшая математика, которую может сделать каждый, пользуйтесь.
А так же на форуме собрано огромное количество сниппетов для возможности переконвертировать любую дату в unixTime.
Казалось бы, такая мелочь и простота, но иногда не хватает всего лишь одной части пазла, чтоб собрать огромную картину.
Я лично перестал пользоваться чем либо, кроме как UnixTime, чего и вам советую.
Небольшое вступление.
Время нам помогает делать различные логические проверки. Например у нас есть база данных в виде таблицы (таблица проще для новичков и маленьких проектов нет десятков и сотен тысяч строк)
И нам надо запускать аккаунт через определенное время, например раз в сутки (через 24 часа), вы скажите, так есть же расписание, оно может тут помочь, а вот и нет, отвечу я ))
Потому как не всегда проходит нужное время по планировщику для того или иного аккаунта. Поэтому расписание можно настроить на запуск каждую минуту, но это в итоге будет не верно, ворно будет сделать отдельный шаблон - Менеджер, который и будет все это отслеживать.
Всегда лучше и проще записывать время рядом с нужным событием/аккаунтом
В дальнейшем мы берем строку аккаунта, берем время, когда были закончены с ним работы и только тогда проверяем прошли ли сутки для него или нет. Для гугла в свое время это было очень важно.
Теперь к практике и применению.
Я для себя в то время, когда столкнулся с этой проблемой, решил, что время стоит использовать для работы только в UnixTime формате (секунды) самый точный вариант как по мне.
взять время в UnixTime в данный момент - основной сниппет
C#:
int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
Все. теперь от этого времени можно плясать в любые стороны.
Например нам надо проверит прошли ли сутки, при взятии аккаунта.
Логика такая:
1. В конце работы шаблона, перед записью в таблицу, берем этим снипом время и записываем в БД
2. В начале работы с аккаунтом берем строку из БД и проверяем переменную со временем
А как это сделать? Просто!
в сутках 24 часа, в 1 часе 60 мин, в 1 мин 60 сек
60*60 = 3600 сек в 1 часе
36000*24 = 86400 сек в 1 сутках
Соответственно берем переменную время конца работы и проверяем в кубике IF
Надо взять время (timeStart), которое сейчас (в момент проверки), взять время (timeEnd) окончания шаблона вычесть одно из другого и проверить
выглядит это так
То есть получается, если сутки прошли, то выйдет по зеленой, если нет, то по красной ветке. Этот метод очень гибкий, можно использовать везде.
Еще пример.
Например нам надо знать сколько времени занимает работа шаблона, чтобы примерно представлять среднее время. Чтоб в будущем оптимизировать/останавливать шаблон.
Можно оставить простую математику t1 - t2 получаем сколько работал шаблон в секундах, но можно сделать более человеческий вид.
Нам поможет сниппет
C#:
int x = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
int y = int.Parse(project.Variables["timeStart"].Value);
var ts = TimeSpan.FromSeconds(x - y);
return string.Format("{0} д. {1} ч. {2} мин. {3} сек.", ts.Days, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds);
выглядит это так
Так же часто встречаю такие темы как: Как вычесть неделю от даты, Как добавить час времени, Как прибавить10 дней.
С unixTime это лишь простейшая математика, которую может сделать каждый, пользуйтесь.
А так же на форуме собрано огромное количество сниппетов для возможности переконвертировать любую дату в unixTime.
Казалось бы, такая мелочь и простота, но иногда не хватает всего лишь одной части пазла, чтоб собрать огромную картину.
Я лично перестал пользоваться чем либо, кроме как UnixTime, чего и вам советую.
- Тема статьи
- Другое
- Номер конкурса статей
- Двадцатый конкурс статей
Вложения
-
14,2 КБ Просмотры: 93
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.