Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Внизкак из TDateTime вычесть к примеру 5 минут? Найти похожие ветки
← →
Rentgen © (2007-01-10 11:06) [0]Всем привет!
как выполнить вычетание из даты_время?
формат TDateTime;
как из TDateTime вычесть к примеру 5 минут?
пробовал:dtNow-StrToDateTime("1.1.0 0:00:05");
dtNow-StrToDateTime("0.0.0 0:00:05");
чето не выходит :(
← →
alex_*** © (2007-01-10 11:08) [1]см. DateUtils
← →
Sergey13 © (2007-01-10 11:10) [2]> [0] Rentgen © (10.01.07 11:06)
1=сутки. Дальше сам считай. А вычитание делается вычитанием.
← →
evvcom © (2007-01-10 11:11) [3]> [0] Rentgen © (10.01.07 11:06)
varDateTime - 5/24/60 или
varDateTime - 5/MinsPerDay
← →
alex_*** © (2007-01-10 11:12) [4]круто. Нормальные герои всегда идут в обход?
p.s. IncMinute
← →
Rentgen © (2007-01-10 11:15) [5]Точно. Спасибо!
вот так:TDateTime dtNow = Now();
ShowMessage(TDateTimeToStr(dtNow-StrToTime("0:05:00"));
← →
Desdechado © (2007-01-10 11:31) [6]Вот извращенец!
Тебе же столько нормальных способов дали, а ты перректально целоваться с датой лезешь.
← →
Джо © (2007-01-10 11:35) [7]> [5] Rentgen © (10.01.07 11:15)
> Точно. Спасибо!
> вот так:
> TDateTime dtNow = Now();
> ShowMessage(TDateTimeToStr(dtNow-StrToTime("0:05:00"));
Ужас.
← →
icWasya © (2007-01-10 11:38) [8]Какой самый извращенный способ проверить в условии if () булевскую переменную ?
bool b;
b = false;
if (b == true){...}
Это децкий лепет
ИТАК, ПЕРВОЕ МЕСТО
Знакомый говорит что нашел только что в коде:
if (b.ToString().length < 5){...}//java
← →
Rentgen © (2007-01-10 11:42) [9]
> Джо © (10.01.07 11:35) [7]
> > [5] Rentgen © (10.01.07 11:15)> Точно. Спасибо!> вот
> так:> TDateTime dtNow = Now();> ShowMessage(TDateTimeToStr(dtNow-
> StrToTime("0:05:00"));Ужас.
Объясните. Почему ужас?
← →
alex_*** © (2007-01-10 11:50) [10]
> Объясните. Почему ужас?
Зачем лишний раз парсить строку чтоб получить время? Можно напрямую работать с числом.
← →
Джо © (2007-01-10 11:51) [11]> [9] Rentgen © (10.01.07 11:42)
>
> > Джо © (10.01.07 11:35) [7]
> > > [5] Rentgen © (10.01.07 11:15)> Точно. Спасибо!> вот
>
> > так:> TDateTime dtNow = Now();> ShowMessage(TDateTimeToStr(dtNow-
>
> > StrToTime("0:05:00"));Ужас.
>
> Объясните. Почему ужас?
Потому, что пять минут — это вещественное число, равное 0.003472222222 (5/24/60). И нужно просто из твоей даты его вычесть. Вместо этого ты зачем-то конвертируешь его из строки. Зачем? Это неоптимально и такой подход ужасен и крайне непрофессионален.
← →
Джо © (2007-01-10 11:52) [12]В крайнем случае — IncMinute, да и то явно избыточно для такой простой задачи.
← →
evvcom © (2007-01-10 11:56) [13]> [11] Джо © (10.01.07 11:51)
> Вместо этого ты зачем-то конвертируешь его из строки.
Плюс рискует нарваться на региональные настройки. А это уже не фича, это конкретный баг.
← →
alex_*** © (2007-01-10 11:56) [14]чего там избыточного:
Result := ((AValue * MinsPerDay) + ANumberOfMinutes) / MinsPerDay;
← →
Джо © (2007-01-10 11:59) [15]> [14] alex_*** © (10.01.07 11:56)
> чего там избыточного:
> Result := ((AValue * MinsPerDay) + ANumberOfMinutes) / MinsPerDay;
Ну, хотя бы то, что придется подключать дополнительный модуль.
А так как у спрашивающего вообще отсутствует понимание природы типа TDateTime, то неплохо, что ему эту природу тут разъясняют, если Справку прочитать было некошерно.
← →
Джо © (2007-01-10 12:00) [16]>
>
> [14] alex_*** © (10.01.07 11:56)
> чего там избыточного:
> Result := ((AValue * MinsPerDay) + ANumberOfMinutes) / MinsPerDay;
Result := Dt - 5/24/60
это гораздо менее избыточно, не так ли? ;)
← →
evvcom © (2007-01-10 12:04) [17]> [16] Джо © (10.01.07 12:00)
Да еще помогает понять ту самую природу :)
← →
Anatoly Podgoretsky © (2007-01-10 12:27) [18]> alex_*** (10.01.2007 11:56:14) [14]
> чего там избыточного:
> Result := ((AValue * MinsPerDay) + ANumberOfMinutes) / MinsPerDay;
Вместо того, что бы сделать A - B
Еще красивее функция IncDay
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.01.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.042 c