Como colocar o horário correto?

13/05/2003

1

:lol:
Estou desenvolvendo um programa de ponto eletrônico e preciso colocar o horário correto.
Se o funcionário entrar antes das 8h deverá aparecer no Label, no caso Label3, o horário 8h. Se ele entrar após as 8h, o horário real deverá ser mostrado no Label3.
Depois, se o funcionário sair antes das 18h, o horário de saída deve ser marcado no Label4, como o horário real de saída.
Se ele sair entre 18h a 18h15, o horário marcado no Label4 deve ser 18h.
Se ele sair após 18h15, o horário de saída deve ser o horário real e deverá ser mostrado no Label4.
Estou enviando o código que fiz, porém não está funcionando de acordo com essas condições. Os horários sempre aparecem no Label4 e sempre são o horário real.
Se alguém puder, por favor, me ajude!!!


procedure TForm1.BitBtn1Click(Sender: TObject);

var
Ano,Mes,Dia:Word;
Hora,Min,Sec,MSec:Word;
HoraEntrada, HoraSaida: Word;

Begin
Edit2.Enabled:= True;

If (Edit1.text = ´karen´) and (Edit2.Text = ´kaka´) then
begin

If (HoraEntrada >= 1) and (HoraEntrada <= 8) then
Label4.Visible:= False;
Label3.Visible:= True;
Begin
DecodeDate(Now,Ano,Mes,Dia);
DecodeTime(Now,HoraEntrada,Min,Sec,MSec);
ShortDateFormat := ´dd/mm/yyyy´;
LongTimeFormat := ´hh:nn´;
LongDayNames[1] := ´Domingo´; LongDayNames[2] := ´Segunda´; LongDayNames[3] := ´Terça´;
LongDayNames[4] := ´Quarta´; LongDayNames[5] := ´Quinta´; LongDayNames[6] := ´Sexta´;
LongDayNames[7] := ´Sábado´;
Label3.Caption := FormatDateTime(´´Hoje é´ dddd, c´,
StrToDateTime(IntToStr(Dia) + ´/´ + IntToStr(Mes) + ´/´ +
IntToStr(Ano) + ´ ´ + IntToStr(8) + ´:´ +
IntToStr(00) + ´:´ + IntToStr(Sec)));

end;

If (HoraEntrada > 8) and (HoraEntrada <= 18) then
Label4.Visible:= False;
Label3.Visible:= True;
Begin
DecodeDate(Now,Ano,Mes,Dia);
DecodeTime(Now,HoraEntrada,Min,Sec,MSec);
ShortDateFormat := ´dd/mm/yyyy´;
LongTimeFormat := ´hh:nn´;
LongDayNames[1] := ´Domingo´; LongDayNames[2] := ´Segunda´; LongDayNames[3] := ´Terça´;
LongDayNames[4] := ´Quarta´; LongDayNames[5] := ´Quinta´; LongDayNames[6] := ´Sexta´;
LongDayNames[7] := ´Sábado´;
Label3.Caption := FormatDateTime(´´Hoje é´ dddd, c´,
StrToDateTime(IntToStr(Dia) + ´/´ + IntToStr(Mes) + ´/´ +
IntToStr(Ano) + ´ ´ + IntToStr(HoraEntrada) + ´:´ +
IntToStr(Min) + ´:´ + IntToStr(Sec)));


End;

If (HoraSaida > 18) and (HoraSaida <= 18.25 )then
Label4.Visible:= True;
Label3.Visible:= False;
Begin
DecodeDate(Now,Ano,Mes,Dia);
DecodeTime(Now,HoraSaida,Min,Sec,MSec);
ShortDateFormat := ´dd/mm/yyyy´;
LongTimeFormat := ´hh:nn´;
LongDayNames[1] := ´Domingo´; LongDayNames[2] := ´Segunda´; LongDayNames[3] := ´Terça´;
LongDayNames[4] := ´Quarta´; LongDayNames[5] := ´Quinta´; LongDayNames[6] := ´Sexta´;
LongDayNames[7] := ´Sábado´;
Label4.Caption := FormatDateTime(´´Hoje é´ dddd, c´,
StrToDateTime(IntToStr(Dia) + ´/´ + IntToStr(Mes) + ´/´ +
IntToStr(Ano) + ´ ´ + IntToStr(18) + ´:´ +
IntToStr(00) + ´:´ + IntToStr(Sec)));
end;


If (HoraSaida > 18) and (HoraSaida < 1) then
Label3.Visible:= False;
Label4.Visible:= True;
Begin
DecodeDate(Now,Ano,Mes,Dia);
DecodeTime(Now,HoraSaida,Min,Sec,MSec);
ShortDateFormat := ´dd/mm/yyyy´;
LongTimeFormat := ´hh:nn´;
LongDayNames[1] := ´Domingo´; LongDayNames[2] := ´Segunda´; LongDayNames[3] := ´Terça´;
LongDayNames[4] := ´Quarta´; LongDayNames[5] := ´Quinta´; LongDayNames[6] := ´Sexta´;
LongDayNames[7] := ´Sábado´;
Label4.Caption := FormatDateTime(´´Hoje é´ dddd, c´,
StrToDateTime(IntToStr(Dia) + ´/´ + IntToStr(Mes) + ´/´ +
IntToStr(Ano) + ´ ´ + IntToStr(HoraSaida) + ´:´ +
IntToStr(Min) + ´:´ + IntToStr(Sec)));


end;
end
Else
Begin
Edit1.SetFocus;
End;


Case Edit1.Text = ´karen´ of False:
MessageBox (Form1.Handle, ´Nome não encontrado. Verifique se o nome foi digitado corretamente.´, ´Atenção!!!´, 0+64);
End;

Case Edit1.Text = ´karen´ of False:
Edit2.Enabled:= False;
End;

Case Edit1.Text = ´karen´ of True:
Edit2.SetFocus;
End;

Case Edit1.Text = ´karen´ of True:
Edit2.Enabled:= True;
End;


End;

End.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira