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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 16:07   #11
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Dux
1. Потому что мы считаем время бодрствования в день, помноженное на количество дней в промежутке. В случае, когда я вычитаю единицу, это значит что начало(конец) заданного периода входит во период бодрствования, соответственно нам нужно вычесть этот день и прибавить количество минут бодрствования, которые вошли в заданный период начала(конца). Как то так.

2.Не совсем, у тебя я так понял не обязательно именно одни сутки, может быть и несколько.

Будешь думать или тебе написать оставшийся кусок?
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 15.09.2010, 16:11   #12
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от quit Посмотреть сообщение
Dux
1. Потому что мы считаем время бодрствования в день, помноженное на количество дней в промежутке. В случае, когда я вычитаю единицу, это значит что начало(конец) заданного периода входит во период бодрствования, соответственно нам нужно вычесть этот день и прибавить количество минут бодрствования, которые вошли в заданный период начала(конца). Как то так.

2.Не совсем, у тебя я так понял не обязательно именно одни сутки, может быть и несколько.

Будешь думать или тебе написать оставшийся кусок?
1. Полнял, спасибо
2. Если не затруднит, был бы очен благодарен за последнее условие. Проще будет разобраться
Dux вне форума Ответить с цитированием
Старый 15.09.2010, 16:17   #13
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

держи
Код:
var
  d1, d2: TDateTime;
  t1, t2: TTime;
begin
  t1 := StrToTime('07:30:00');
  t2 := StrToTime('23:30:00');
  d1 := StrToDateTime('10.09.2010 07:15:00');
  d2 := StrToDateTime('15.09.2010 14:15:00');
//когда время бодровствования входит во время начала и конца
  if ((DateOf(d1)+t1)>d1)and((DateOf(d2)+t2)<d2) then
    ShowMessage(IntToStr(DaysBetween(d2,d1)*MinutesBetween(t2,t1)))
  else
//когда входит только в начало
    if (DateOf(d1)+t1)>d1 then
      ShowMessage(IntToStr((DaysBetween(d2,d1)-1)*MinutesBetween(t2,t1) + MinutesBetween(d2,DateOf(d2)+t1)))
  else
//когда входит только в конец
    if (DateOf(d2)+t2)<d2 then
      ShowMessage(IntToStr((DaysBetween(d2,d1)-1)*MinutesBetween(t2,t1) + MinutesBetween(d1,DateOf(d1)+t2)))
  else
//когда входит и туда, и туда :)
      ShowMessage(IntToStr((DaysBetween(d2,d1)-2)*MinutesBetween(t2,t1) + MinutesBetween(d2,DateOf(d2)+t1)+ MinutesBetween(d1,DateOf(d1)+t2)))

end;
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 15.09.2010, 16:28   #14
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо, огромное!
Dux вне форума Ответить с цитированием
Старый 16.09.2010, 14:41   #15
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Quit, есть вопрос, если поставить

t1 := StrToTime('07:30:00');
t2 := StrToTime('23:30:00');
d1 := StrToDateTime('15.09.2010 22:40:00');
d2 := StrToDateTime('16.09.2010 13:40:00');

Количество минут выдает " - 1500". Подскажите, где ошибка закралась?
Dux вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
время между двумя интервалами tbeca@mail.ru Общие вопросы Delphi 2 29.01.2010 23:11
Как установить связь между двумя файлами ЦЕРЦЕЯ Microsoft Office Excel 2 25.01.2010 11:59
Разница между двумя датами (целые дни) Droid Общие вопросы Delphi 15 03.11.2009 23:36
выборка между двумя датами UnChanter БД в Delphi 1 30.03.2009 21:09
Как задать интервал между датами в фильтре Леон Microsoft Office Access 2 22.10.2008 11:16