Jump to content


Photo

Cálculo De Horas Trabalhadas


  • Faça o login para participar
1 reply to this topic

#1 Renan Fernandes

Renan Fernandes

    12 Horas

  • Usuários
  • 179 posts
  • Sexo:Masculino
  • Localidade:Rio de Janeiro
  • Interesses:Tudo relacionado a webmaster, webdesign e programação.

Posted 31/05/2005, 12:37

eu tenho um Dbgrid com os campos H_entrada, H_saida e H_trabalhadas.

os campos H_entrada e H_saida são do tipo timer e H_trabalhadas é do tipo Float, para facilitar na hora de somar a coluna. OK, eu tenho um botão, que subitrai a hora de entrada da hora da saída e envia o resultado para o campo de horas trabalhadas. Ficou assim:

tbHoras.Edit;
tbHorasH_Ttrabalhadas.Value:=tbHorasH_saida.Value - tbHorasH_entrada.Value;

só que o resultado é 0,416666666666667 um número quebrado.

eu queria que na hora do cálculo fosse assim:

Entrada: 07:00:00(timer) Saída: 17:00:00(timer) Horas trabalhadas: 10(float)

Espero ter sido claro e agradeço desde já.

Não existe vento favorável quando não se sabe onde quer chegar.


Dicas Digitais

#2 Emailx45

Emailx45

    Novato no fórum

  • Usuários
  • 3 posts
  • Sexo:Não informado

Posted 08/09/2005, 23:43

Primeiro, sempre ter em mente que não devemos trabalhar com dados de tipos diferentes. Devemos converte-los para obter a resposta desejada.

DateTime
A parte inteira são os dias, meses e anos
A parte decimal são os milessegundos, segundos, minutos e horas

Float
São dados numéricos de ponto flutuante até 15 casas decimais

Podemos executar taferas como SOMAR uma DATA com um NUMERO, pois, por debaixo dos panos, as DATAS e HORAS são valores numéricos, porém, o resultado será, também, numérico e não DATAS ou HORAS.

Desta forma, teremos de usar FUNÇÕES de CONVERSÃO ( fazer um CAST ) no resultado para transformá-lo no que desejamos ( se possível ).

Veja no HELP as funções de CONVERSÃO de DATAS / HORAS / FLOAT

Por exemplo: FormatDateTime(), STR(), INT(), FloatToSTR(), etc... são muitas.

FloatToDateTime( valor numérico ) retornará uma DATA de acordo com o valor informado.

Lembrando que valores muito grandes ou negativos poderão retornar numa data errada. Veja os limites no HELP.

:P




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq