Hora turno tabela

Delphi

20/04/2005

Fiz assim, mas StrToTimer não esta funcionando, alguem pode
me dizer onde esta errado?

Grato
juarezber@terra.com.br

procedure TForm1.Button1Click(Sender: TObject);
Var
Hora, Turno: String;
begin
Hora:= Table1.FieldByName(´Hora´).AsString;
if (hora >= StrToTimer(6:00) and (hora < StrToTimer(14:00)) then
Turno:= ´1´;
if (hora >= StrToTimer(14:00) and (hora < StrToTimer(22:00)) then
Turno:= ´2´;
if (hora >= StrToTimer(22:00) and (hora < StrToTimer(06:00)) then
Turno:= ´3´;
end;


Juarezber

Juarezber

Curtidas 0

Respostas

Edilcimar

Edilcimar

20/04/2005

não é strtotimer e sim strtotime


GOSTEI 0
Juarezber

Juarezber

20/04/2005

Mil desculpas, era pra ter respondido o topico que eu mesmo criei.
Mas agora ja foi. Se alguem quiser responder da StrToTimer(6:00)?

Grato
juarezber@terra.com.br


GOSTEI 0
Rjun

Rjun

20/04/2005

Essa condição nunca vai ser verdadeira :

if (hora >= StrToTimer(22:00) and (hora < StrToTimer(06:00)) then Turno:= ´3´;


use

if (hora >= StrToTime(´22:00:00´) ) or (hora >= StrToTime(´00:00:00´) and hora <= StrToTime(´06:00:00´)) then
  Turno := ´3´;
 



GOSTEI 0
Juarezber

Juarezber

20/04/2005

Fiz como Rjun, deu erro :
[Error] Unit1.pas(37): Incompatible types: ´String´ and ´TDateTime´


GOSTEI 0
Rjun

Rjun

20/04/2005

Desculpa. Nao tinha reparado que a hora era string. Converta a hora para Datetime usando strtotime tambem.

Em vez de declarar a variavel Hora como string, declare como TDateTime.

var
  Hora: TDateTime;


Na atribuição, faça o seguinte :

Hora := StrToTime(Table1.FieldByName(´Hora´).AsString); 



GOSTEI 0
Juarezber

Juarezber

20/04/2005

Consegui, la vai o codigo completo.

procedure TForm1.Button1Click(Sender: TObject);
Var
Hora: TDateTime;
Turno: Integer;
begin
Hora:= Table1.FieldByName(´Hora´).AsDateTime;
if (Hora >= StrToTime(´06:00:00´)) and (Hora < StrToTime(´14:00:00´)) then
Turno:= 1;
if (Hora >= StrToTime(´14:00:00´)) and (Hora < StrToTime(´22:00:00´)) then
Turno:= 2;
if (Hora >= StrToTime(´22:00:00´)) or ((Hora < StrToTime(´00:00:00´)) or
(Hora < StrToTime(´06:00:00´)))then
Turno:= 3;
Edit1.Text:= IntToStr(Turno);
end;

Abraços
juarezber@terra.com.br


GOSTEI 0
Rjun

Rjun

20/04/2005

De nada...


GOSTEI 0
Juarezber

Juarezber

20/04/2005

Mais uma coisa. Não estou conseguindo, o if abaixo, as variaveis
tem que ser com essas definições. Ja troquei StrToTime...etc. O erro esta abaixo. Se alguem tiver alguma ideia, por favor.

Var
Hora: TDateTime;
Turno: String;
Begin
if TableContador1.FieldByName(´Turno´).AsString = (´A´) and
((Hora >= StrToTime(´06:00:00´)) and (Hora < StrToTime(´14:20:00´)))
then
//Faça
end;

//[Error] Linha1.pas(530): Operator not applicable to
this operand type

Grato
juarezber@terra.com.br


GOSTEI 0
Marco Salles

Marco Salles

20/04/2005

Var Hora: TDateTime; Turno: String; Begin if TableContador1.FieldByName(´Turno´).AsString = (´A´) and ((Hora >= StrToTime(´06:00:00´)) and (Hora < StrToTime(´14:20:00´))) then //Faça end; //[Error] Linha1.pas(530): Operator not applicable to this operand type


Troque para:
Var 
Hora: TTime;//-->>Pode tb trocar aqui , não é necessário , mas é aconselhavel
Turno: String; 
Begin 
if (TableContador1.FieldByName(´Turno´).AsString = ´A´) and 
((Hora >= StrToTime(´06:00:00´)) and (Hora < StrToTime(´14:20:00´))) 
then 
//Faça 
end; 



GOSTEI 0
POSTAR