|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
NOW + Миллисекунды
Приветствую, встала задача прибавления к текущей дате произвольного числа (миллисекунд), так вот вопрос в том как это сделать ?
Так как читал что с датами можно работать как с обычными числами, то пробывал сделать так: Код:
ShowMessage(DateTimeToStr(now + (1000 * 60 * 5)));//те к текущей дате я прибавил 5 минут Но результат неверен, ессно опыта таких манипуляций с датами нет |
#2
|
|||
|
|||
Ну да, т.к. время хранится справа от точки. Т.е. прибавление 5 минут будет так:
Код:
NewTime := Now + 5 / (24 * 60 * 60); |
#3
|
||||
|
||||
Цитата:
Спасибо большое, учту |
#4
|
||||
|
||||
Еще уточню, а если мне надо прибавить 2 часа, то это будет выглядеть так?
Код:
now + 120 / (24 * 60 * 60); |
#5
|
|||
|
|||
Нверное. Но проще просто так:
Код:
NewDate := Now + 2 / 24; |
#6
|
||||
|
||||
Или
Код:
NewDate := Now + 1 / 12; P.S. Пофлужу по темам, хочу счётчик 777))) Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#7
|
||||
|
||||
Значения все таки получаются разные:
Код:
now + 120 / (24 * 60 * 60);now + 2 / 24 Так что же все таки правильно? Мне нужно универсальную функцию, которая позволяет прибавлять к текущей дате как время, так и часы, что то в этом духе: Код:
function TForm1.NextWorkTime: TDateTime; begin Result := 0; case ComboBox1.ItemIndex of 0: Result := now + 10 / (24 * 60 * 60); 1: Result := now + 15 / (24 * 60 * 60); 2: Result := now + 30 / (24 * 60 * 60); 3: Result := now + 60 / (24 * 60 * 60); 4: Result := now + 120 / (24 * 60 * 60); 5: Result := now + 180 / (24 * 60 * 60); end; end; |
#8
|
||||
|
||||
Код:
var hh, mm, ss, msec: word; begin hh := 2; // 2 часа mm := 30; // 30 минут ss := 0; // 0 секунд msec := 0; // 0 миллисекунд Result := now + EncodeTime(hh, mm, ss, msec); end; Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj Последний раз редактировалось PhoeniX, 22.05.2010 в 16:40. |
#9
|
||||
|
||||
О, точно, совсем забыл про эту функцию, тогда все манипуляции с временем будут выглядеть так?
Код:
function PrepareTime(hh: word; mm: word; ss: word = 0; msec: word = 0): String; begin Result := DateTimeToStr(now + EncodeTime(hh, mm, ss, msec)); end; function TForm1.NextWorkTime: String; begin Result := ''; case ComboBox1.ItemIndex of 0: Result := PrepareTime(0, 10); // 10 минут 1: Result := PrepareTime(0, 15); // 15 минут 2: Result := PrepareTime(0, 30); // 30 минут 3: Result := PrepareTime(1, 0); // 1 час 4: Result := PrepareTime(2, 0); // 2 часа 5: Result := PrepareTime(3, 0); // 3 часа end; end; Последний раз редактировалось Vayrus, 22.05.2010 в 13:09. |
#10
|
||||
|
||||
Ну да, как-то так.
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |