Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1156606780
DVM
2006-08-26 19:39
2007.01.28
Неблокирующие сокеты на WinAPi.


6-1156410841
Zaborostroitel
2006-08-24 13:14
2007.01.28
Перехват адресной строки IE


3-1163013159
ivan8511
2006-11-08 22:12
2007.01.28
Создать программно базу данных


15-1167800015
Pas
2007-01-03 07:53
2007.01.28
Как перевести на Паскаль ?


15-1168411061
pavel_guzhanov
2007-01-10 09:37
2007.01.28
Наверное еще не все потеряно :o))





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский