Генерация даты в заданном промежутке

lexone

Client
Регистрация
12.10.2012
Сообщения
420
Благодарностей
726
Баллы
93
Всем привет!

Очень нужна ваша помощь :dh:

Есть сниппет:

Код:
DateTime RandomDay()
{
    DateTime start = new DateTime(1995, 1, 1);
    Random gen = new Random();

    int range = (DateTime.Today - start).Days;          
    return start.AddDays(gen.Next(range));
}
Нужно его переделать под рандомную генерацию дат в заданном диапазоне

(например: с 2013-06-27 01:03:19 до 2014-01-28 05:07:13) и при каждом обращении к сниппету , чтобы выдавало рандомное время из этого диапазона).
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
792
Баллы
113
return DateTime.Parse("2013-06-27 01:03:19").Add(TimeSpan.FromSeconds((rnd.Next(86400, (int)(DateTime.Parse("2014-01-28 05:07:13").Subtract(DateTime.Parse("2013-06-27 01:03:19")).TotalSeconds))))).ToString();
 
  • Спасибо
Реакции: lexone

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
Код:
                DateTime RandomDay(string date1, string date2)
                {
                    DateTime start = DateTime.Parse(date1);
                    DateTime stop = DateTime.Parse(date2);
                    Random rnd = new Random();
                    return start.AddDays(rnd.Next(0,new TimeSpan(stop.Ticks - start.Ticks).Days));
                }
 
  • Спасибо
Реакции: lexone

lexone

Client
Регистрация
12.10.2012
Сообщения
420
Благодарностей
726
Баллы
93
Всем спасибо!

Слегка переделал и исправил ошибку в коде LexxWork.
Кому надо:


Код:
var rnd = new Random();
return DateTime.Parse(project.Variables["god_ot"].Value).Add(TimeSpan.FromSeconds((rnd.Next(86400, (int)(DateTime.Parse(project.Variables["god_do"].Value).Subtract(DateTime.Parse(project.Variables["god_ot"].Value)).TotalSeconds))))).ToString();



 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
792
Баллы
113
в коде ошибке не было просто код был неполным. А ума хватило только на то чтобы выпросить первую строчку через пм и отписаться что мол сам исправил. Ай-яй-ай
 

lexone

Client
Регистрация
12.10.2012
Сообщения
420
Благодарностей
726
Баллы
93
в коде ошибке не было просто код был неполным. А ума хватило только на то чтобы выпросить первую строчку через пм и отписаться что мол сам исправил. Ай-яй-ай
Эм.. не хотел обидеть :av:
Просто дополнил код , который не работал в нынешнем виде, если не добавить ту строку.. (которую ты мне и указал в ЛС).
А то вдруг кому-то понадобиться еще сниппет, а он не будет работать :bh:

Еще раз большое спасибо!
 

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Подскажите а как на выходе сделать дату другого формата, т.е. там сейчас так: 11.01.2016 3:20:59 а нужно: 2016.01.11 3:20:59
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 068
Благодарностей
5 725
Баллы
113
  • Спасибо
Реакции: Tonny

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Нужно вот этот формат: String.Format("{0:u}", dt);
А как теперь его изменить в данном коде?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 068
Благодарностей
5 725
Баллы
113
Так
 

Вложения

  • Спасибо
Реакции: Tonny

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 139
Баллы
113
Код:
var rnd = new Random();
return DateTime.Parse(project.Variables["god_ot"].Value).Add(TimeSpan.FromSeconds((rnd.Next(86400, (int)(DateTime.Parse(project.Variables["god_do"].Value).Subtract(DateTime.Parse(project.Variables["god_ot"].Value)).TotalSeconds))))).ToString("yyyy.MM.dd HH:mm:ss");
 
  • Спасибо
Реакции: luserz и Tonny

Tonny

Client
Регистрация
20.07.2013
Сообщения
142
Благодарностей
5
Баллы
18
Спасибо, все работает!!
 

AloneSlamer

Client
Регистрация
29.01.2013
Сообщения
1 404
Благодарностей
362
Баллы
83

Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с AloneSlamer какие-либо сделки.

эх ) я такую задачу решил генерацией юникстайма и потом его конвертацией в обычное время
 
  • Спасибо
Реакции: orka13

booms1

Client
Регистрация
20.08.2019
Сообщения
139
Благодарностей
19
Баллы
18
Выполнение действия CSharp OwnCode. String was not recognized as a valid DateTime.
Идёт ошибка, может кто подсказать как пофиксить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 481
Благодарностей
10 025
Баллы
113
Выполнение действия CSharp OwnCode. String was not recognized as a valid DateTime.
Идёт ошибка, может кто подсказать как пофиксить?
В переменных god_ot и god_do нужно указать не только года, но и полный формат, напрмиер так:
god_ot: 2000.01.11 11:11:11
god_do: 2018.01.11 11:11:11

47361

47362
 
  • Спасибо
Реакции: luserz и booms1

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