Рандом времени.

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
Код:
var startDate = Convert.ToDateTime(DateTime.Now.ToString(project.Variables["start_date"].Value));
var endDate = Convert.ToDateTime(DateTime.Now.ToString(project.Variables["end_date"].Value));

TimeSpan timeSpan = endDate - startDate;
var randomTest = new Random();
TimeSpan newSpan = new TimeSpan(0, randomTest.Next(0, (int)timeSpan.TotalMinutes), 0);
DateTime newDate = startDate + newSpan;

return newDate;
Проблема.
Если выставляю в start_date и end_date одинаковую дату, результат всегда с 0:00:00
Помощь.
Подскажите, как отдельно рандомить часы и минуты, в случае, если start_date и end_date совпадают.
 

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
Можно конечно кубиками, проверять, если start_date и end_date одинаковые, то отправлять на другой сниппет, но вряд ли это можно будет назвать нормальным решением.
 

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
Решил сам. Достаточно вбивать start_date 00:00 end_date 23:59. Великая мощь C# :D
 
  • Спасибо
Реакции: masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
подскажи а как дату убрать, чтобы только время было или покажи где дату менять, а то он сегодняшнюю дату ставит, смысл если он сгенерит время которое уже прошло.
 

Sz5

Client
Регистрация
10.12.2012
Сообщения
157
Благодарностей
186
Баллы
43
Добавляем переменные из сниппета в проект. Пишем нужные даты.
2a230da1535df2c1bd90917dfde48c70.png

Дальше кубиком с регулярным выражением парсим нужный элемент
2f37d8acd13d3d448cd324a9adeb23e5.png
Результат будет примерно такой.
499dda25a89df28a62c37977a409c25a.png

Сама регулярка со скрина: (?<=\ ).*
 
  • Спасибо
Реакции: masterLomaster
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
ооо прикольно! Спасибо БРО! А я в переменные только время установил вот он мне и выдавал сегодняшнюю дату, а так как у тебя на скринах все здорово получается. Спасибки!
 
  • Спасибо
Реакции: Sz5
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113
но для проектов я обычно использую время такого формата return (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000; просто легче обрабатывать.
 

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