Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.28;
Скачать: CL | DM;

Вниз

как из 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.039 c
15-1168081075
kaZaNoVa
2007-01-06 13:57
2007.01.28
Покритикуйте программу, Self-loader


2-1168535155
DevilDevil
2007-01-11 20:05
2007.01.28
ClientRect


2-1168362269
Cj
2007-01-09 20:04
2007.01.28
Получение пути фаила программы (процесса)


15-1168103024
Nic
2007-01-06 20:03
2007.01.28
Turbo Delphi страсть как хочется :)


15-1168463921
PHPdeveloper
2007-01-11 00:18
2007.01.28
бизнес модель ShareWare продукта