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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2010, 15:43   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Вычисление оставшегося времени

Вот сейчас, например, 9.10.10 17:42. А как вычислить, сколько дней, часов, минут и секунд осталось,например, до 19 декабря?

Последний раз редактировалось _-Re@l-_; 09.10.2010 в 15:45.
_-Re@l-_ вне форума Ответить с цитированием
Старый 09.10.2010, 16:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

DaysBetween,HoursBetween,MinutesBet ween,MonthsBetween...
И так далее из DateUtils
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.10.2010, 17:51   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Я не совсем понимаю как использовать эти функции.можно пример кода?
_-Re@l-_ вне форума Ответить с цитированием
Старый 09.10.2010, 18:37   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Пример:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  d1,d2:TDateTime;
begin
  d1 := EncodeDateTime(2010,10,9,17,42,0,0);
  d2 := EncodeDateTime(2010,12,19,0,0,0,0);
  ShowMessage('Осталось: '+IntToStr(DaysBetween(d1,d2))+' дней');
end;
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 10.10.2010, 09:22   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Почему-то пишет Undeclared identifier про EncodeDateTime....
Всё, проблема решена, всем спасибо.

Однако, теперь другая проблема.
Делаю вот так:
Код:
var
  Form1: TForm1;
  d1,d2:TDate;
  t1,t2:TTime;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
      d2:=EncodeDate(2010,12,19);
      t2:=EncodeTime(0,0,0,0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
      d1:=Now;
      t1:=Now;
      Edit1.Text:=IntToStr(DaysBetween(d1,d2));
      Edit2.Text:=IntToStr(HoursBetween(t1,t2));
      Edit3.Text:=IntToStr(MinutesBetween(t1,t2));
      Edit4.Text:=IntToStr(SecondsBetween(t1,t2));
      Form1.SetFocus;
end;
Однако, каждую секунду вместо того чтобы уменьшаться, время увеличивается!Почему же так??



Опять же проблема решена, надо было так:
Код:
var
  Form1: TForm1;
  d1,d2:TDateTime;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
      d1:=EncodeDateTime(2010,12,19,0,0,0,0);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
      d2:=Now;
      Edit1.Text:=IntToStr(DaysBetween(d1,d2));
      Edit2.Text:=IntToStr(HoursBetween(d1,d2));
      Edit3.Text:=IntToStr(MinutesBetween(d1,d2));
      Edit4.Text:=IntToStr(SecondsBetween(d1,d2));
      Form1.SetFocus;
end;

Последний раз редактировалось Stilet; 10.10.2010 в 11:16.
_-Re@l-_ вне форума Ответить с цитированием
Старый 10.10.2010, 10:03   #6
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Потому, что время не стоит на месте :=))

Код:
var t1,t2:TDateTime;

d2:=EncodeDate(2010,12,19);
t2:=d2 + EncodeTime(0,0,0,0);
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление времени макросом sasha_prof Microsoft Office Excel 4 02.04.2010 11:35
Вычисление времени работы программы Monte-Kristo Паскаль, Turbo Pascal, PascalABC.NET 2 12.06.2009 13:25
Вычисление ряда Ronk Паскаль, Turbo Pascal, PascalABC.NET 1 05.06.2009 23:47
Вычисление felmor Паскаль, Turbo Pascal, PascalABC.NET 0 26.12.2008 17:45
вычисление f(x) felmor Паскаль, Turbo Pascal, PascalABC.NET 0 24.12.2008 22:11