Сравнить бы время

  • Автор темы Автор темы infosimple
  • Дата начала Дата начала

infosimple

Client
Регистрация
01.01.2015
Сообщения
466
Реакции
63
Баллы
28
Здравствуйте, реально ли сделать снипет, который будет сравнивать 2 времени? Для владельца ZP не программиста - это выглядит так
be1a3-clip-4kb.png

Заранее спасибо.
 
Всем спасибо, весь вечер убил, сделал разбивку на месяца дни часы минуты и сравнивал в отдельности как числы через if, большущий шаб, через швитчи тоже делал разбивки и т.д.
 
Если актуально можно сниппет на C# накатать
 
Так вот бы хотелось сниппет, а то больно уж большой шаб получился.
 
Вот маленький проект с нужным вам снипетом.
В комментариях все подробно описал,
подкорректировать снипет под ваш контекст выполнения будет несложно.
 

Вложения

Какая подходящая моему кейсу тема. Но, мне необходим код который бы чекал прошло ли 24 часа. Значение "прошлого" времени имеется в ячейке таблицы, необходимо "прошлое" сравнить с "текущим" временем. Дата и время в моём шабе берутся в таком формате
Код:
Развернуть Свернуть Копировать
return DateTime.Now.ToString("dd.MM.yyyy HH:mm");
Пример результата: "11.01.2016 23:00"
 
Последнее редактирование:
Подправил предыдущий шаблон под новую задачу.
Основная идея в шаблоне раскрыта.
Входящие данные подправите под свой проект.
 

Вложения

  • Оценить
Реакции: up_lvl
Проект вчера выложил, а уж потом пришла мысль что на разных компах
будет по разному работать. Выкладываю исправленную версию.
 

Вложения

  • Оценить
Реакции: Koqpe и Igorii
Проект вчера выложил, а уж потом пришла мысль что на разных компах
будет по разному работать
А почему? вроде у всех одинаковы часы идут или в смысли разные часовые пояса?

За снипет спасибо.
 
Спустя 2 года наработан некоторый опыт в работе с DateTime. Работать в подобных кейсах удобно приводя время в UTC - ToUniversalTime(), а затем его сравнивать.
Отвечая самому себе двухлетней давности на вопрос прошло ли X часов с какого-то момента datetime_start:
Код:
Развернуть Свернуть Копировать
var datetime_start = "12/03/2018 23:00:00"; // project.Variables["time_start"].Value;
var datetime_utc = DateTime.Parse(datetime_start).ToUniversalTime();
double hours = 24; //double.Parse(project.Variables["hours"].Value);
bool time_comparison = datetime_utc.AddHours(hours) < DateTime.UtcNow;
if (time_comparison)
{
    return hours+" час(ов) прошло с "+datetime_start;;
}
else
{
    return hours+" час(ов) не прошло с "+datetime_start;
    //если надо по false выйти:
    //throw new Exception (hours+" час(ов) не прошло c "+datetime_start);
}


Помимо часов AddHours, есть также методы AddMonths, AddDays, AddMinutes, AddSeconds, AddMilliseconds. Что делает данную конструкцию очень удобной в применении.
 
Как сделать так чтобы после 0:30 шаблон выполнял другие действия. а после 10:00 выполнял другие...?
 
Как сделать так чтобы после 0:30 шаблон выполнял другие действия. а после 10:00 выполнял другие...?
Каждый вариант "другие действия"? :)
Как вариант текущее время сравнивать и по IF отправлять в разные ветки.
Или сделать 2 шаблона.
 
Время то сравнил С помощью CompareTime.xmlz
Но Сравнение происходит в промежутке с 0:00:01 по 0:30:00. А нам надо чтобы с 10:00 шаблон выполнял другие действия до следующего дня 0:30:00
2 шаблона Не прокатит, очень много данных обмениваются в одном шаблоне.
 
Проект вчера выложил, а уж потом пришла мысль что на разных компах
будет по разному работать. Выкладываю исправленную версию.
подскажите как этот код сделать чтобы проверял 2 значение времени из переменной с системным временем?
т.е к примеру 8-00 (значение из переменной) шаб запустить а , в 21-00 (значение из переменной) остановить
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)