Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.12.2011, 20:41
Аватар для adidas
adidas adidas вне форума
Новичок
 
Регистрация: 24.03.2008
Адрес: Украина
Сообщения: 61
Версия Delphi: XE
Репутация: 10
Восклицание Генерация случайного времени в промежутке

Здравствуйте! Нужно генерировать случайное время в заданном промежутке (например, 18:32:01..23:25:34).
Набросал вот такой код, но генерировать будет, если h1<h2 and m1<m2 and s1<s2.
В общем, помогите
Заранее спасибо!
Код:
function TForm1.RandomRangeTime(h1,m1,s1,h2,m2,s2: integer): string;
var
  t: TTime;
  stop: boolean;
  h, m, s: integer;
begin
randomize;
stop:=false;
while stop=false do
  begin
    h:=random(24);
    if h in [h1..h2] then stop:=true;
  end;
stop:=false;
while stop=false do
  begin
    m:=random(60);
    if m in [m1..m2] then stop:=true;
  end;
stop:=false;
while stop=false do
  begin
    s:=random(60);
    if s in [s1..s2] then stop:=true;
  end;
t:=EncodeTime(h,m,s,0);
result:=TimeToStr(t);
end;
Ответить с цитированием
  #2  
Старый 15.12.2011, 20:49
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Как-то так:
Код:
function GetRandomTime(RangeStart, RangeEnd : TDateTime) : TDateTime;
const
  DateTimeSecond = 1/(24*60*60);
begin
  Result := RangeStart + Random(1+SecondsBetween(RangeStart, RangeEnd))*DateTimeSecond;
end;
Ответить с цитированием
  #3  
Старый 15.12.2011, 21:08
Аватар для adidas
adidas adidas вне форума
Новичок
 
Регистрация: 24.03.2008
Адрес: Украина
Сообщения: 61
Версия Delphi: XE
Репутация: 10
По умолчанию

Спасибо!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter