Главная страница
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.058 c
6-1156611573
1519
2006-08-26 20:59
2007.01.28
Подключение к интернету


2-1168630655
Moholith
2007-01-12 22:37
2007.01.28
Поиск фрагментов строки и фрагментов слова.


2-1168436770
FIL-23
2007-01-10 16:46
2007.01.28
работа с константой


15-1167733191
Slider007
2007-01-02 13:19
2007.01.28
С днем рождения ! 1 января


2-1168113814
Officeman
2007-01-06 23:03
2007.01.28
TCPClient > TCPServer