Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Отсчет времени(СРОЧНО!)  (Прочитано 8657 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MS
Помогающий

ru
Offline Offline
Пол: Мужской

« : 08-03-2007 11:05 » 

Подскажите, как посчитать оставшееся время до введеного, если часы, минуты и секунды вводим как отдельные переменные.
Заранее спасибо.
Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 08-03-2007 11:43 » new

в API есть функция
void GetLocalTime(
  LPSYSTEMTIME lpSystemTime
);

она подойдёт для данной задачи, я полагаю )
Записан

MS
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 08-03-2007 11:57 » 

А нельзя коддинг хотя бы примерно.
Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 08-03-2007 12:49 » 

MS, Сведи все в одну переменную. Примерно так
Твоя_Переменная = Час*3600+Минута*60+Секунды;
Затем отнимай эти переменные и обратно разворачивай
Секунды = Твоя_переменная mod 60;
Твоя_переменная = Твоя_переменная div 60;
Минуты = Твоя_переменная mod 60;
Твоя_переменная = Твоя_переменная div 60
Часы = Твоя_переменная

Данные выводы верны, если мы ведем счет в пределах одного дня. Как сделать с учетом дней, месяцев и годов подумай сам.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
zubr
Гость
« Ответ #4 : 09-03-2007 04:56 » 

Просто отнимаешь от одного времени другое (переменные типа TDateTime - это вещественные переменные). Если надо преобразовать в TDateTime из отдельных часов, минут, секунд, пользуемся функцией EncodeDateTime. Затем, чтобы определить сколько осталось часов, минут, секунд, полученную разницу преобразовываем с помощью функции DecodeDateTime. Есть еще функция CompareDateTime, позволяющая сравнивать время, но она только показывает больше, меньше, равно.
З.Ы. Все вышеназванные функции находятся в модуле DateUtils (для Delphi6-7).
Записан
MS
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 10-03-2007 13:27 » 

Всем большое спасибо, очень помогли. Улыбаюсь
Записан

Ничто так не ограничивает полёт мысли программиста, как компилятор
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines