сравнение дат

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

wizard

Client
Регистрация
04.10.2011
Сообщения
1 056
Реакции
720
Баллы
113
Здравствуйте, может у кого есть готовое решение
в окружении есть {-TimeNow.Date-} выглядит так 03/17/2015 00:00:51
хотел бы высчитывать количество секунд до текущей даты ....

ну или еще как нибудь сравнить ранее записанную {-TimeNow.Date-} с текущей {-TimeNow.Date-}
-----------
Заранее спасибо.
 
C#:
Развернуть Свернуть Копировать
// Конвертируем время
string dtString = "03/17/2015 00:00:51";
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime date = DateTime.Parse(dtString.Split('.')[0], culture);       

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date - date2; 
double seconds = span.Seconds;// Ну вот и разница)
 
  • Оценить
Реакции: ramilxxxl и wizard
ага спасибо ... еще на js сам нашел )
Код:
Развернуть Свернуть Копировать
var date = new Date("03/17/2015 21:30:50");
var date2 = new Date("{-TimeNow.Date-}");
(date - date2)/1000;
 
  • Оценить
Реакции: SilverSun
C#:
Развернуть Свернуть Копировать
// Конвертируем время
string dtString = "03/17/2015 00:00:51";
System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime date = DateTime.Parse(dtString.Split('.')[0], culture);      

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date - date2;
double seconds = span.Seconds;// Ну вот и разница)

к сожалению ответ не разница в секундах
так как при сравнении 03/13/2015 00:00:00 и текущего получаю ответ отрицательное двузначное число
а надо число секунд пошедшее с 03/13/2015 (признаю может неправильно объяснил в первом посте )
 
  • Оценить
Реакции: SilverSun
C#:
Развернуть Свернуть Копировать
 // Конвертируем время
            string dtString = "03/13/2015 23:43:51";
            System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
            DateTime date = DateTime.Parse(dtString.Split('.')[0], culture);        

            var date2 = DateTime.Now; // Текущее время
            TimeSpan span = date2 - date;
            double seconds = span.TotalSeconds;
 
  • Оценить
Реакции: SilverSun и Sergodjan
тоже понадобилось волшебство в виде снипета C# или JS.. или алгоритм вычисления хотя бы..
нужно вычислить кол-во дней (целое положительное число) между текущей датой из переменной {-TimeNow.Date-} и переменной содержащей "2015-03-24" (значение приведено для примера, дата в таком формате парсится с сайта, она всегда больше текущей, то есть не наступившая еще дата).. приму помощь в хорошие добрые руки.. :ah:

основная сложность я так понимаю возникает если вычислять кол-во дней на границе месяцев (одна дата например в марте, а другая в апреле)..
если в пределах одного месяца (например обе даты в марте), то можно приводить даты к одному формату, убирать разделители-тире и просто вычитать.. а если даты находятся в разных месяцах, то так уже не получится сделать..

с помощью снипета в предыдущем сообщении получится сделать, поделив потом секунды на 60*60*24 и округлив результат. но тогда другая задача: как привести последовательность "2015-03-24" к "03/24/2015 00:00:00", чтобы подсунуть в снипет в первую строку..
 
Последнее редактирование:
  • Оценить
Реакции: SilverSun
C#:
Развернуть Свернуть Копировать
 // Конвертируем время
            string dtString = "03/13/2015 23:43:51";
            System.Globalization.CultureInfo culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
            DateTime date = DateTime.Parse(dtString.Split('.')[0], culture);       

            var date2 = DateTime.Now; // Текущее время
            TimeSpan span = date2 - date;
            double seconds = span.TotalSeconds;
Народ, можете подсказать, как подправить данный вариант, чтобы старая дата, которую нужно вычитать из текущей, бралась из переменной. Спасибо.
 
Народ, можете подсказать, как подправить данный вариант, чтобы старая дата, которую нужно вычитать из текущей, бралась из переменной. Спасибо.
Код:
Развернуть Свернуть Копировать
// Конвертируем время
System.Globalization.CultureInfo culture =System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime date = DateTime.Parse(project.Variables["time"].Value, culture);

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date2 - date;
double seconds = span.TotalSeconds;
time - имя переменной, c которой будет браться дата.
 
  • Оценить
Реакции: SilverSun и Malchishka
Код:
Развернуть Свернуть Копировать
// Конвертируем время
System.Globalization.CultureInfo culture =System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime date = DateTime.Parse(project.Variables["time"].Value, culture);

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date2 - date;
double seconds = span.TotalSeconds;
time - имя переменной, c которой будет браться дата.
выдаёт ошибку
[QUOTE
Error in JavaScript: "eval code: Строка 1 - Ошибка: Список атрибутов не относится к текущему контексту
".
][/QUOTE]
 
Код:
Развернуть Свернуть Копировать
// Конвертируем время
System.Globalization.CultureInfo culture =System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
DateTime date = DateTime.Parse(project.Variables["time"].Value, culture);

var date2 = DateTime.Now; // Текущее время
TimeSpan span = date2 - date;
double seconds = span.TotalSeconds;
time - имя переменной, c которой будет браться дата.

В ответе получаю не кол-во секунд, а слово "ок". Я рад что всё прошло хорошо, но время штука точное)
 
добавить в конце в ваш блок C#

return seconds;
 

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