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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2008, 22:00   #1
WebSQLNeeder
Пользователь
 
Регистрация: 28.06.2008
Сообщений: 12
По умолчанию Алгоритм по формированию времени с помощью DateTimeToString

Прошу помочь с алгоритмом.

Задача - необходимо сформировать массив времен начиная от текущего времени необходимо получить время час назад, час вперед ... потом два часа назад, два часа вперед ... и так скажем на 100 или 1000 шагов ... У кого есть какие соображения как это реализовать?
WebSQLNeeder вне форума Ответить с цитированием
Старый 28.06.2008, 22:09   #2
WebSQLNeeder
Пользователь
 
Регистрация: 28.06.2008
Сообщений: 12
По умолчанию

Попробовал сделать что то типа DateTimeToString(st, 'h+1:n:s', Now());

Но это не дает эффекта. Может это вообще как то по другому реализовать можно без DateTimeToString ?

В идеале хотелось бы что то типа SmestitDateTime(5) - сместит время на 5 часов, или SmestitDateTime(-70) сместит на 70 часов назад ...
WebSQLNeeder вне форума Ответить с цитированием
Старый 28.06.2008, 22:17   #3
WebSQLNeeder
Пользователь
 
Регистрация: 28.06.2008
Сообщений: 12
По умолчанию

Вот сижу сейчас пробую написать алгоритм тупого анализа времени - то есть смещаем время на 1 час и начинаем анализ если время до 24 часов значит так и формируем время а если перешагнуло то нужно сместить еще и счетчик даты ... потом анализ даты по месяцам в 30 или 31 или 28 периодов ... потом анализ по месяцам в переполнении по 12 ... Короче уже замучался ...

Может у кого то есть рабочий алгоритм или вообще что посоветуете?
WebSQLNeeder вне форума Ответить с цитированием
Старый 28.06.2008, 23:34   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Это H часов вперед от даты ND. Назад аналогично

Код:
function incHour(ND:TDateTime; H:integer):TDateTime;
var D, M, Y, H1, M1, S1, MS:word;
    D1 : TDateTime;
begin
   DecodeDate(ND, Y, M, D);
   D1 := encodeDate(Y, M, D);
   DecodeTime(D, H1, M1, S1, MS);
   inc(H1, H);
   if H1 > 23 then begin
      D1 := D1 + H1 div 24;
      H1 := H1 mod 24;
   end;
   result := D1 + encodeTime(H1, M1, S1, MS);
end;
alexBlack вне форума Ответить с цитированием
Старый 30.06.2008, 10:38   #5
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
Сообщение от WebSQLNeeder Посмотреть сообщение
Прошу помочь с алгоритмом.

Задача - необходимо сформировать массив времен начиная от текущего времени необходимо получить время час назад, час вперед ... потом два часа назад, два часа вперед ... и так скажем на 100 или 1000 шагов ... У кого есть какие соображения как это реализовать?
Стандартная функция IncHour из DateUtils вас не устроит? Или это слишком просто?
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.

Последний раз редактировалось Andrei; 30.06.2008 в 13:45. Причина: Ошибка в названии функции
Andrei вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интервалы времени znickolai84 Компоненты Delphi 4 16.05.2008 15:53
обновление в блоге - Шифровка с помощью пароля. Улучшаем алгоритм шифрования 2 Pblog Обсуждение статей 0 15.02.2008 18:30
Отсчет времени в С Raptor Помощь студентам 13 29.12.2007 16:32
Машина времени BETONOMESHALKA Общие вопросы Delphi 4 23.12.2007 23:44
обновление в блоге - Шифровка с помощью пароля. Улучшаем алгоритм шифрования Pblog Обсуждение статей 0 03.09.2007 16:00