 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
weberley Aprendiz

Registrado: Quinta-Feira, 14 de Agosto de 2008 Mensagens: 102
|
Enviada: Qui Fev 14, 2019 10:38 am Assunto: Calcular Hora Negativa e Positiva |
|
|
olá a todos
tenho as seguintes Horas 01:04(uma hora e quatro minutos), -00:03(três minutos negativos), -00:26(vinte e seis minutos negativos) e queria o resultado deles que seria 00:35 como faço isso, por favor, me ajude |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Fev 14, 2019 1:08 pm Assunto: |
|
|
Boa tarde,
Onde estão armazenados esses horários?
São sempre 3 horários? O primeiro positivo e os outros negativos? Se não é dessa forma, como é possível saber qual é positivo e gual é negativo?
Editado pela última vez por imex em Sáb Set 30, 2023 5:44 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
weberley Aprendiz

Registrado: Quinta-Feira, 14 de Agosto de 2008 Mensagens: 102
|
Enviada: Qui Fev 14, 2019 3:08 pm Assunto: |
|
|
não estão armazanados em lugar nenhum, eles são o resultado do cartao de ponto, e eu quero calcular para saber se o funcionario ta devendo horas ou tem horas extras, e os negativos tem um sinal de menos como mostra acima |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Fev 14, 2019 5:41 pm Assunto: |
|
|
Supondo a existência de 3 Edits no Form que contem os horários, segue uma sugestão de código para a soma dos horários:
Código: | procedure TForm1.Button2Click(Sender: TObject);
function ObterHoraStrEmMinutos(HoraStr: string): integer;
var
Mult: integer;
Hora: TDateTime;
begin
if Pos('-', HoraStr) > 0 then
Mult := -1
else
Mult := 1;
Hora := StrToTime(StringReplace(HoraStr, '-', '', []));
Result := ( HourOf(Hora) * 60 + MinuteOf(Hora) ) * Mult;
end;
var
TotMinutos: integer;
begin
TotMinutos := ObterHoraStrEmMinutos(Edit1.Text) +
ObterHoraStrEmMinutos(Edit2.Text) +
ObterHoraStrEmMinutos(Edit3.Text);
ShowMessage( Format('Resultado: %s%d:%2.2d',
[IfThen(TotMinutos < 0, '-', ''),
Abs(TotMinutos) div 60,
Abs(TotMinutos) mod 60]) );
end; |
obs: necessário adicionar as units StrUtils e DateUtils na uses
Espero que ajude |
|
Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|