Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.04.2014, 14:10
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Сложение времени и даты HELP!

Помогите реализовать новичку любителю!!
Суть программы заключается в том, что необходимо реализовать на Delphi формулу работающую в Exel:формула (=D2-B3+B4).
Необходимо сложить текущее время и дату с указанным в ручную временем:
Код:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
edit8.Text:=(''+TimeToStr(now));
end;

С указанным временем поступившего сигнала, введенного вручную в edit или лучше в MaskEdit1 и отнять время оперативного скачка так-же введенного вручную в edit или лучше в MaskEdit1.
Вот мой код: Дата прибавляется!! на время введенное в ручную а время отображается текущее.
Код:
Код:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
 if edit4.Text='' then
     hour:=0
  else
   begin
     hour:=StrToInt(edit4.Text);
    end;
 
   if edit5.Text='' then
     min:=0
  else
   begin
     min:=StrToInt(edit5.Text);
        end;
     
  
 a:= Now;  
  b:= IncHour(a, hour);
  c:= IncMinute(b,min);
 
  edit1.text:='' + TimeToStr(c); 
  edit9.Text:=''+DateTostr(c);
end;
MAD: пользуемся тегами!
D2-Текущее время и дата выводимое командой TimeToStr(now)
B3-вводимое в ручном режиме время поступившего звонка
B4-оперативный скачек вводимый в ручную количество дней в формате времени.
Изображения
Тип файла: bmp Счетчик.bmp (356.3 Кбайт, 4 просмотров)
Тип файла: bmp счетчик ексель.bmp (178.1 Кбайт, 1 просмотров)

Последний раз редактировалось Daniil, 04.04.2014 в 15:19.
Ответить с цитированием
  #2  
Старый 03.04.2014, 14:45
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Вот если бы правильно оформил код, то сразу бы было видно, где заканчивается процедура TForm1.BitBtn1Click
Ответить с цитированием
  #3  
Старый 04.04.2014, 11:53
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от icWasya
Вот если бы правильно оформил код, то сразу бы было видно, где заканчивается процедура TForm1.BitBtn1Click
По этому коду указанное время прибавляется к дате!! но суть в том что нужно еще и отнять некое время. нужно понимание как с edit-a отнять введенно время в ручную вот в таком формате? пример: 08:00 "Двоеточие"

Последний раз редактировалось Daniil, 04.04.2014 в 11:57.
Ответить с цитированием
  #4  
Старый 04.04.2014, 13:45
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Daniil
По этому коду указанное время прибавляется к дате!! но суть в том что нужно еще и отнять некое время. нужно понимание как с edit-a отнять введенно время в ручную вот в таком формате? пример: 08:00 "Двоеточие"
Так проблема в том чтобы из строки "08:00" получить минуты и секунды? Или в том что вычитание времени не работает?
Ответить с цитированием
  #5  
Старый 04.04.2014, 15:13
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Так проблема в том чтобы из строки "08:00" получить минуты и секунды? Или в том что вычитание времени не работает?

Из строки 08:00 получить время и отнять его от общего времени
Суть программы заключается в том, что необходимо реализовать на Delphi формулу работающую в Exel:формула (=D2-B3+B4).
D2-Текущее время и дата выводимое командой TimeToStr(now)
B3-вводимое в ручном режиме время поступившего звонка
B4-оперативный скачек вводимый в ручную количество дней в формате времени.

Последний раз редактировалось Daniil, 04.04.2014 в 15:16.
Ответить с цитированием
  #6  
Старый 05.04.2014, 03:36
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от Daniil
...Из строки 08:00 получить время и отнять его от общего времени...

Код:
...
Edit1.Text:= TimeToStr(StrToTime(Edit2.Text) - StrToTime(Edit3.Text));
...
Ответить с цитированием
  #7  
Старый 07.04.2014, 17:09
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Код:
...
Edit1.Text:= TimeToStr(StrToTime(Edit2.Text) - StrToTime(Edit3.Text));
...
Спасибо! почти то что нужно, но есть нюанс!! добавляю минуты в edit и нажимаю отнять , отнимает от часов хотя нужно отнять минуту.
Ответить с цитированием
  #8  
Старый 07.04.2014, 17:17
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Daniil
Спасибо! почти то что нужно, но есть нюанс!! добавляю минуты в edit и нажимаю отнять , отнимает от часов хотя нужно отнять минуту.
А если так?:
Код:
  Edit1.Text := TimeToStr(StrToTime(Edit2.Text) - StrToTime('0' + TimeSeparator + Edit3.Text));
Ответить с цитированием
  #9  
Старый 07.04.2014, 17:44
Daniil Daniil вне форума
Прохожий
 
Регистрация: 02.04.2014
Сообщения: 22
Версия Delphi: Delphi 7
Репутация: 10
Радость

Цитата:
Сообщение от Alegun
Код:
...
Edit1.Text:= TimeToStr(StrToTime(Edit2.Text) - StrToTime(Edit3.Text));
...
Вышел из ситуации следующим образом, исключил второй edit, оставил один MaskEdit. Все работает.

Цитата:
Сообщение от poli-smen
А если так?:
Код:
  Edit1.Text := TimeToStr(StrToTime(Edit2.Text) - StrToTime('0' + TimeSeparator + Edit3.Text));
Вышел из ситуации следующим образом, исключил второй edit, оставил один MaskEdit. Все работает.

Цитата:
Сообщение от poli-smen
А если так?:
Код:
  Edit1.Text := TimeToStr(StrToTime(Edit2.Text) - StrToTime('0' + TimeSeparator + Edit3.Text));
Теперь есть другая проблема в поле минуты ввожу число больше 59 выкидывает ошибку.
Как можно ограничить ввод до определенного числа, т.е не более 59 и так же время не более 23

Последний раз редактировалось M.A.D.M.A.N., 07.04.2014 в 18:24.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter