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

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
Благодарностей
785
Баллы
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
Благодарностей
890
Баллы
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
Благодарностей
785
Баллы
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 067
Благодарностей
5 703
Баллы
113
  • Спасибо
Реакции: Tonny

Tonny

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

rostonix

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

Вложения

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

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 099
Баллы
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
Сообщения
134
Благодарностей
18
Баллы
18
Выполнение действия CSharp OwnCode. String was not recognized as a valid DateTime.
Идёт ошибка, может кто подсказать как пофиксить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 361
Благодарностей
8 647
Баллы
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

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