Как сравнить две даты?

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

Rudan

Client
Регистрация
21.10.2014
Сообщения
29
Реакции
3
Баллы
3
Как сравнить две переменные, содержащие даты формата: Mon, 29 Dec 2014 21:39:45 +0000 ?
 
Сравнение — это логическая операция, которая возвращает «меньше», «равно» или «больше».
В Зенно для дат это целая история, я использовал свой код на C#
 
  • Оценить
Реакции: lokiys
Нужно просто привести к типу Дата
JS
JavaScript:
Развернуть Свернуть Копировать
var date1 = new Date("Mon, 29 Dec 2014 21:39:45 +0000");
var date2 = new Date("Mon, 30 Dec 2014 21:39:45 +0000");

if(date1 < date2){
    //console.log("true");
}else{
    //console.log("false");
}
 
7make, спасибо. Не думал, что в JS есть конструктор прям с таким же форматом даты.
 
сори ребят а как сюда вставить переменные
  1. var date1 = new Date("Mon, MyData 21:39:45 +0000");
  2. var date2 = new Date("Mon, 30 Dec 2014 21:39:45 +0000");
пробовал так не получилось
project.Variables["MyData"].Value
спасибо
 
  • Оценить
Реакции: Alex62
Код:
Развернуть Свернуть Копировать
DateTime date = Convert.ToDateTime("30 Dec 2014 21:39:45 +0000");
DateTime date1 = Convert.ToDateTime("30 Dec 2014 21:40:45 +0000");
TimeSpan diff = date1 - date;
return Math.Floor(diff.TotalSeconds);
 
а добавлять каки ето dll нужно? скопировал код вылазит с десяток ошибок в проджектмейкере?
 
upload_2016-2-6_21-57-10.png
 
  • Оценить
Реакции: orka13
вот так у меня ((((
 

Вложения

  • 2016-02-06 18-49-33 Скриншот экрана.png
    2016-02-06 18-49-33 Скриншот экрана.png
    86,6 KB · Просмотры: 993
билд v5.9.5.1
компоненты все как у вас(((
 

Вложения

  • 2016-02-06 19-14-00 Скриншот экрана.png
    2016-02-06 19-14-00 Скриншот экрана.png
    118,7 KB · Просмотры: 864
Сравниваю какая дата меньше. Подскажите пожалуйста, как правильно написать чтобы ошибки не было?

Ошибка:


Код c#:
Код:
Развернуть Свернуть Копировать
DateTime date_start = Convert.ToDateTime("{-Variable.m_time_start-}");
DateTime date_site = Convert.ToDateTime("{-Variable.m_time_site-}");


if(date_start < date_site){
    return "true";
}else{
    throw new Exception("false");
}
 
  • Оценить
Реакции: Lest и Alex62
project.Variables["m_time_start"].Value

Не работает. Что я не так пишу?
Код:
Развернуть Свернуть Копировать
DateTime date_start = Convert.ToDateTime("project.Variables["m_time_start"].Value");
DateTime date_site = Convert.ToDateTime("project.Variables["m_time_site"].Value");


if(date_start < date_site){
    return "true";
}else{
    throw new Exception("false");
}
 
  • Оценить
Реакции: maxim.gutareff
Никто не знает что у вас в переменных лежит, какая ошибка возникает и тд)
напишите подробнее.
 
  • Оценить
Реакции: maxim.gutareff
  • Оценить
Реакции: Astraport
что у меня не так с кодом? хочу вычислить разницу между 2мя датами
http://c2n.me/3DjKu7s

DateTime date = Convert.ToDateTime(project.Variables["start_time"].Value);
DateTime date1 = Convert.ToDateTime(project.Variables["time_now"].Value);
TimeSpan diff = date1 - date;
return Math.Floor(diff.TotalSeconds);



еще такой код нашел на форуме, но тоже не пашет у меня

DateTime date = Convert.ToDateTime(project.Variables["start_time"].Value);
DateTime date1 = Convert.ToDateTime(project.Variables["time_now"].Value);
TimeSpan span = date1 - date;
double seconds = span.TotalSeconds;


Возможно понял свою ошибку: переменные start_time и time_now должны быть в формате 30 Dec 2014 21:39:45 +0000 но как в таком формате их быстро получить?
 
Последнее редактирование:
Входный формат даты неверный.
В лог смотрели?

Посмотреть вложение 16000
предполагаю, что переменные start_time и time_now должны быть в формате 30 Dec 2014 21:39:45 +0000 но как в таком формате их быстро получить?

примерно понял. получить дату {-TimeNow.Date-} и регексом немного подшлифовать
 
предполагаю, что переменные start_time и time_now должны быть в формате 30 Dec 2014 21:39:45 +0000 но как в таком формате их быстро получить?
Не обязательно в таком. Дата должна быть в действительном формате. То есть, в таком, как ее понимает система.
Получить дату можно достаточно банально:
C#:
Развернуть Свернуть Копировать
return DateTime.Now.ToString();
 
  • Оценить
Реакции: spbalexpiter
А может подскажете еще как реализовать такое: если разница больше 20 секунд, то выходить по красной ветке иначе по зеленой?
 
C#:
Развернуть Свернуть Копировать
DateTime date1 = DateTime.Now; // получаем начальную дату
System.Threading.Thread.Sleep(10000); // ждем 10 секунд
DateTime date2 = DateTime.Now; // получаем дату завершения
TimeSpan diff = date2 - date1; // получаем разницу
return Math.Floor(diff.TotalSeconds); //переводим разницу в секунды
 
  • Оценить
Реакции: spbalexpiter
А может подскажете еще как реализовать такое: если разница больше 20 секунд, то выходить по красной ветке иначе по зеленой?

Нужно дополнить код из предыдущего сообщения:
C#:
Развернуть Свернуть Копировать
DateTime date1 = DateTime.Now;
System.Threading.Thread.Sleep(10000);
DateTime date2 = DateTime.Now;
TimeSpan diff = date2 - date1;
if (Math.Floor(diff.TotalSeconds) < 20)
    {
        return "True";
    }
else
    {
       throw new Exception("False");
    }

Надеюсь разберетесь без комментариев :-)))
 
  • Оценить
Реакции: spbalexpiter
прочитал ветку но не дошло.((( имею дату в формате {-TimeNow.Дата-} 12/20/2016 как мне получить разницу в количестве днях от текущей даты?
 

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