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

wizard

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

ну или еще как нибудь сравнить ранее записанную {-TimeNow.Date-} с текущей {-TimeNow.Date-}
-----------
Заранее спасибо.
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
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

wizard

Client
Регистрация
04.10.2011
Сообщения
989
Благодарностей
585
Баллы
93
ага спасибо ... еще на js сам нашел )
Код:
var date = new Date("03/17/2015 21:30:50");
var date2 = new Date("{-TimeNow.Date-}");
(date - date2)/1000;
 
  • Спасибо
Реакции: SilverSun

wizard

Client
Регистрация
04.10.2011
Сообщения
989
Благодарностей
585
Баллы
93
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

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
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

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 443
Благодарностей
8 672
Баллы
113
тоже понадобилось волшебство в виде снипета C# или JS.. или алгоритм вычисления хотя бы..
нужно вычислить кол-во дней (целое положительное число) между текущей датой из переменной {-TimeNow.Date-} и переменной содержащей "2015-03-24" (значение приведено для примера, дата в таком формате парсится с сайта, она всегда больше текущей, то есть не наступившая еще дата).. приму помощь в хорошие добрые руки.. :ah:

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

с помощью снипета в предыдущем сообщении получится сделать, поделив потом секунды на 60*60*24 и округлив результат. но тогда другая задача: как привести последовательность "2015-03-24" к "03/24/2015 00:00:00", чтобы подсунуть в снипет в первую строку..
 
Последнее редактирование:
  • Спасибо
Реакции: SilverSun

Malchishka

Client
Регистрация
10.11.2011
Сообщения
216
Благодарностей
36
Баллы
28
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;
Народ, можете подсказать, как подправить данный вариант, чтобы старая дата, которую нужно вычитать из текущей, бралась из переменной. Спасибо.
 

iDnx

Client
Регистрация
06.06.2013
Сообщения
129
Благодарностей
104
Баллы
43
Народ, можете подсказать, как подправить данный вариант, чтобы старая дата, которую нужно вычитать из текущей, бралась из переменной. Спасибо.
Код:
// Конвертируем время
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
Регистрация
23.03.2015
Сообщения
1 124
Благодарностей
656
Баллы
113
Код:
// Конвертируем время
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]
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Это не Javascript code.
 
Регистрация
23.03.2015
Сообщения
1 124
Благодарностей
656
Баллы
113
Код:
// Конвертируем время
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 которой будет браться дата.
В ответе получаю не кол-во секунд, а слово "ок". Я рад что всё прошло хорошо, но время штука точное)
 
Регистрация
23.03.2015
Сообщения
1 124
Благодарностей
656
Баллы
113
unixtime рулит!
 
Регистрация
10.07.2017
Сообщения
29
Благодарностей
1
Баллы
3
добавить в конце в ваш блок C#

return seconds;
 

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