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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.10.2011, 14:57
larexxx larexxx вне форума
Прохожий
 
Регистрация: 02.10.2011
Сообщения: 7
Репутация: 10
По умолчанию Работа со временем

Подскажите пожалуйста как можно реализовать вывод(числом) №смены(1,2 или 3) например в Edit в зависимости от текущего времени.
Если например:
1 смена работает - с 22:00 вечера до 7:00 утра,
2 смена работает - с 7:00 утра до 15:00 дня,
3 смена работает - с 15:00 дня до 22:00 вечера.
Ответить с цитированием
  #2  
Старый 10.10.2011, 15:20
Аватар для Ildar-tsr
Ildar-tsr Ildar-tsr вне форума
Местный
 
Регистрация: 09.08.2011
Адрес: г.Сургут, ХМАО
Сообщения: 453
Репутация: 7402
По умолчанию

Цитата:
Сообщение от larexxx
Подскажите пожалуйста как можно реализовать вывод(числом) №смены(1,2 или 3) например в Edit в зависимости от текущего времени.
Если например:
1 смена работает - с 22:00 вечера до 7:00 утра,
2 смена работает - с 7:00 утра до 15:00 дня,
3 смена работает - с 15:00 дня до 22:00 вечера.

Посмотреть чтоб в uses присутствовал модуль SysUtils (он по умолчанию есть, но на всякий случай), и далее

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Time>=StrToTime('22:00:0')) and (Time<StrToTime('7:00:0')) then
    Edit1.Text:= '1';
  if (Time>=StrToTime('7:00:0')) and (Time<StrToTime('15:00:0')) then
    Edit1.Text:= '2';
  if (Time>=StrToTime('15:00:0')) and (Time<StrToTime('22:00:0')) then
    Edit1.Text:= '3';
end;
__________________
Google в помощь
Ответить с цитированием
  #3  
Старый 10.10.2011, 16:05
larexxx larexxx вне форума
Прохожий
 
Регистрация: 02.10.2011
Сообщения: 7
Репутация: 10
По умолчанию

Уточню: на форме есть текущее время
Код:
procedure TForm1.tmr1Timer(Sender: TObject);
begin
lbl1.Caption:=timetostr(Time);
end;
вот в зависимости от него и надо чтоб автоматически выводилось №смены в Edit
Ответить с цитированием
  #4  
Старый 10.10.2011, 16:51
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от Ildar-tsr
Посмотреть чтоб в uses присутствовал модуль SysUtils (он по умолчанию есть, но на всякий случай), и далее

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if (Time>=StrToTime('22:00:0')) and (Time<StrToTime('7:00:0')) then
    Edit1.Text:= '1';
  if (Time>=StrToTime('7:00:0')) and (Time<StrToTime('15:00:0')) then
    Edit1.Text:= '2';
  if (Time>=StrToTime('15:00:0')) and (Time<StrToTime('22:00:0')) then
    Edit1.Text:= '3';
end;
Кошмар...
Ну кто так учит программировать?
Это для того чтобы программа работала быстрей?

Это с разряда:
PHP код:
if length(a)=1 then s:='число меньше 10 :)'
правда в оригинале так:
PHP код:
...
if (
i.ToString().Length == 1)
{
  ...


Последний раз редактировалось Konrad, 10.10.2011 в 17:14.
Ответить с цитированием
  #5  
Старый 10.10.2011, 17:01
larexxx larexxx вне форума
Прохожий
 
Регистрация: 02.10.2011
Сообщения: 7
Репутация: 10
По умолчанию

Всё разобрался......извиняюсь.......создал второй таймер и прописал
Код:
Btn1Click(nil);
Ответить с цитированием
  #6  
Старый 10.10.2011, 20:00
chainik chainik вне форума
Начинающий
 
Регистрация: 30.06.2008
Сообщения: 140
Репутация: 8882
По умолчанию

вот 2 варианта функции которая возвращает номер смены по дате/времени
Зачем нужен второй (и первый) таймер-не понял...
Код:
function GetSmena(Dt:TDateTime):integer;
begin
Dt:=TimeOf(Dt)*24;
if (Dt>=7) and (Dt < 15) then Result:=2
else if (Dt>=15) and (Dt <22) then Result:=3
else Result:=1;
end;

function GetSmena(Dt:TDateTime):integer;
begin
Dt:=TimeOf(Dt)*24;
if (Dt >=0) then Result:=1;
if (Dt>=7) then Result:=2;
if (Dt>=15) then Result:=3;
if (Dt>=22) then Result:=1;
end;

Последний раз редактировалось chainik, 10.10.2011 в 22:18.
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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