Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 3 435

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Помогите пожалуйста написать функцию получения точного времени из интернета (http://www.direct-time.ru/index.php?id=1). Заранее спасибо!

Free Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Free (статус: Посетитель)
Вопрос отправлен: 23 ноября 2009, 12:51
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, Pasha!
На вкладках с Indy ищем компонент TIdDayTime. в свойство Host вписываем NTP сервер, который находиться гуглом или к примеру здесь http://support.ntp.org/bin/view/Servers/NTPPoolServers Можно спросить у вашего провайдера или вуза.
также ставим кнопку и метку (TLabel). пишем для кнопки код

IdDayTime1.Connect;
Label1.Caption := IdDayTime1.DayTimeStr;
IdDayTime1.Disconnect;
Запускаем, жмем, наслаждаемся. Можно аккуратно этот код завернуть в таймер:)
Если же хочется уметь правильно синхронизировать время то тут поможет соседний компонент TIdTime
для него пишем где то такой код
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTime1.Host := 'time.nist.gov';//это сервер, надо выбирать подходящий.
  try
    IdTime1.SyncTime ;
  finally
    IdTime1.Disconnect;
  end;
end;

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 24 ноября 2009, 14:56
Оценка за ответ: 3

Комментарий к оценке: Спасибо!

Мини-форум вопроса

Всего сообщений: 5; последнее сообщение — 24 ноября 2009, 15:24; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 23 ноября 2009, 13:40 [#1]:

а надо именно с этого сайта? хорошее качество по любому не получиться, всё таки задержки в канале...
В целом. для получения точного времени есть протокол NTP. Этот прокол умеет обходить задержки в сети и другие проблемы.
В Indy даже есть компоненты:)
Галочка "подтверждения прочтения" - вселенское зло.
Free

Free (статус: Посетитель), 23 ноября 2009, 17:24 [#2]:

Нет, время можно узнавать и из другого сайта, главное чтобы время было как можно точнее (до секунд, либо миллисекунд), хотя насколько я знаю - максимальная точность - до секунд.
Вадим К

Вадим К (статус: Академик), 23 ноября 2009, 17:37 [#3]:

с помощью NTP протокола можно получать до долей секунд даже на самых плохих каналах.
Почему?
- клиент делает запросы и измеряет время прихода ответа, потом корректирует.
- клиент делает несколько запросов.
- много серверов, и при правильном подходе можно с несколько серверов брать время.
Галочка "подтверждения прочтения" - вселенское зло.
Free

Free (статус: Посетитель), 24 ноября 2009, 14:36 [#4]:

Опишите пожалуйста, как это реализовать.
Вадим К

Вадим К (статус: Академик), 24 ноября 2009, 15:24 [#5]:

Что за люди пошли??? узнаешь, что им надо, даешь решение, а они тройку ставят...
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:49
Выполнено за 0.02 сек.