Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.12.2013, 04:25   #1
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию TDateTime: как определить что между двумя датами прошло 24 ч

Подскажите как правильно посчитать
Дата 1
Дата 2

Дата 1 - некое значение
Дата 2 - настоящее время

как определить что между ними прошло 24 ч

не когда с ним не работал что то туплю
Halogen вне форума Ответить с цитированием
Старый 18.12.2013, 05:15   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

См. описание типа TDateTime
Код:
type TDateTime = type Double;
Это число дней, прошедшее с 12:00 30.12.1899

Код:
var dat1,dat2:TDateTime;
     ProsloBolee24h:Boolean;
begin
 ProsloBolee24h:=(dat2-dat1)>1;
type_Oleg вне форума Ответить с цитированием
Старый 18.12.2013, 06:18   #3
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию

что то мне всегда true возврощает
и это не совсем то как я понял , сменится значение когда дата измениться , а мне нужно когда 24 часа пройдет

Последний раз редактировалось Halogen; 18.12.2013 в 06:22.
Halogen вне форума Ответить с цитированием
Старый 18.12.2013, 10:13   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Модуль DateUtils, функция HoursBetween.
Человек_Борща вне форума Ответить с цитированием
Старый 18.12.2013, 10:22   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
и это не совсем то как я понял
Все правильно, (dat2-dat1)>1 когда разница между датами больше суток или 24 часов. HoursBetween аналогичный результат даст. Если в датах время нулевое, то естественно 25/02/2013 - 24/02/2013 даст единицу. Но если не нулевое, то 25/02/2013 10:00:00 - 24/02/2013 22:00:00 = 0.5
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 18.12.2013 в 10:26.
Аватар вне форума Ответить с цитированием
Старый 18.12.2013, 23:25   #6
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Тоже хотел написать, что формат TDate (TTime, TDateTime) - обычное Extended число (десятичное), где за 1-цу по умолчанию принят день. Т.е. Now()-1= сутки назад, Now()-14= 2 недели назад.
Now() - функция, возвращающая текущие дату и время.
UPD: тут я нес чушь про различия TDateTime, TTime и TDate. Но сообщение ниже заставило меня проверить это дело (до чего у меня руки ранее не доходили, ибо было лень). Между этими тремя типами нет никакой разницы, хотя зря, ведь в формат TDate можно вместить больше дней, если бы он считал только их, а формат TTime сделать более точным (увеличение ни к чему, так как в сутках в любом случае всего 24 часа).
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 19.12.2013 в 00:19.
alextrof94 вне форума Ответить с цитированием
Старый 18.12.2013, 23:38   #7
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Посмотрите в System и увидите, что
TDate = type TDateTime;
TTime = type TDateTime;
ReportCube вне форума Ответить с цитированием
Старый 19.12.2013, 08:45   #8
Halogen
Пользователь
 
Аватар для Halogen
 
Регистрация: 23.11.2013
Сообщений: 46
По умолчанию

Спасибо всем , теперь понял как это работает
Halogen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в MS Excel рассчитать количество полных месяцев между двумя датами? moonlightchild Microsoft Office Excel 2 28.12.2012 13:20
найти разницу между двумя датами, а результат записать в письменном виде, так чтобы было согласование между падежами KatanaZh Microsoft Office Excel 15 27.11.2012 00:11
число часов между двумя датами Azart11 Общие вопросы C/C++ 13 06.10.2012 15:26
Как между двумя датами определить время бодрствования? Dux Общие вопросы Delphi 14 16.09.2010 14:41
выборка между двумя датами UnChanter БД в Delphi 1 30.03.2009 21:09