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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2014, 20:31   #1
Dennis777
Форумчанин
 
Регистрация: 06.11.2009
Сообщений: 203
По умолчанию Помогите с датой.

Доброго времени суток.

Никогда ранее не работал с датой, а сейчас возникла потребность создать фичу, которая будет выдавать бонусы за ежедневный запуск программы на протяжении 5 дней.

Как можно вычесть две даты и получить результат на delphi, т.е. чтобы 1.06.2006 - 30.05.2006 = 2, а не 29.

Насколько я понимаю, функция DaysBetween указывает количество полных дней из промежутка (24 часа), мне же необходимо выполнять проверку только по числу.

То есть человек мог первый раз запустить программу 03.04 в 22:50, а второй раз - 04.04 в 12:30. В таком случае человеку будет начисляться бонус за заход в новый день.

То есть меня интересует не разница в 24 часа, а разница только в днях, учитывая тот факт, что заход в приложение будет засчитываться как в 00:00, так и в 18:40.

Спасибо за помощь.
Интересный проект по изучению английского:
Английский в формате путешествия по США
Dennis777 вне форума Ответить с цитированием
Старый 03.04.2014, 21:01   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
То есть человек мог первый раз запустить программу 03.04 в 22:50, а второй раз - 04.04 в 12:30. В таком случае человеку будет начисляться бонус за заход в новый день.
То есть меня интересует не разница в 24 часа, а разница только в днях, учитывая тот факт, что заход в приложение будет засчитываться как в 00:00, так и в 18:40.
Можно построить алгоритм так, чтобы он учитывал только дату.
Streletz вне форума Ответить с цитированием
Старый 03.04.2014, 21:42   #3
-=Virus=-
Форумчанин
 
Аватар для -=Virus=-
 
Регистрация: 03.07.2009
Сообщений: 246
По умолчанию

Код:
ShowMessage(FormatDateTime('dd',Now))
Выводит день месяца.
-=Virus=- вне форума Ответить с цитированием
Старый 04.04.2014, 07:07   #4
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Код:
var
 Days: extended;
 DatePast: TDateTime;//время прошлого захода в программу, хранится где-то
 DaysCount: integer;//счетчик заходов в программу подряд, хранится где-то

begin
 Days:=Now-DatePast;
 if (Days>=1)and(Days<=2) then Inc(DaysCount)
 else DaysCount:=0//счетчик скидывается

 if DaysCount=5 then //та-дам! бонус
end;
superedward вне форума Ответить с цитированием
Старый 04.04.2014, 08:20   #5
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Код:
var
cntDay:integer;
dayone,daytwo:tdatetime;
begin
cntDay := trunc(daytwo)-trunc(dayone);
end;
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с датой ZaramothРещьфкфя Visual C++ 0 19.09.2012 07:37
отсутствует взаимосвязь между датой поступления товара и датой отгрузки Forget Microsoft Office Access 0 13.02.2011 14:10
Помогите сделать запрос с параметром-датой Herly Помощь студентам 9 22.12.2009 18:42
Задача с датой помогите Василий12345 Microsoft Office Excel 5 18.12.2009 19:31
Несовпадение с датой RoZi Помощь студентам 26 28.11.2007 13:05