none
CALCULO DE HORAS EXTRAS RRS feed

  • Pergunta

  • Olá

    Estou desde ontem batendo cabeça para fazer um calculo de horas extras.

    Nessa tela ai tem os horários do funcionário da semana.

    Na segunda ele fez 01:30:10 de hora extra (positivo)

    Na Terça foi normal

    Nos outros dias ele faltou dando um total de 28:00:00 horas (negativas)

    Eu fiz assim:

    tsTempoMais (total de horas positivas 01:30:10)

    tsTempoMenos (total de horas negativas 28:00:00)

    Dim tsTotal As TimeSpan = tsTempoMais - tsTempoMenos

    tsTotal.TotalHours esta sendo o total de 26,5 (resultado certo)

    como converter esse resultado para 26:30:00 no caso ficando negativo ou positivo?

    Ou qual seria o calculo correto seguindo a tela?

    http://www.nsolucoesemti.com/sistemas/telahoras.jpg


    Obrigado Alex Passos
    sexta-feira, 6 de maio de 2011 18:53

Respostas

  • Alex, para ter o total de horas no formato de hora mesmo é só fazer assim:

    tsTotal.ToString(); (Sem utilizar o TotalHours)

    A propriedade TotalHours no caso seria utilizado para o cálculo de horas.

    Obs.:

    Não sei qual a regra da sua empresa, mas creio que o cálculo que esteja fazendo esteja errado, pois digamos que:

    Trabalhador tem salário de 1100,00.
    Valor por hora: 1100 / 220 horas mês = 5,00

    Regras de hora extra:
    Hora extra dias de semana = valor da hora + 60%
    Hora extra sábado = valor da hora + 75%
    Hora extra domingo e feriados = valor da hora + 100%
    Hora Adiciona Noturno (22:00 as 06:00) = valor da hora + porcentagem do dia + 30% 

    Faltou 28 horas = 140,00

    Hora extra dia normal de 1:30:00 = 12,00

    Valor total do trabalhador = 1100 - 140,00 + 12,00 = 972,00

    Se você fizer da maneira que esta fazendo o trabalhador receberia um valor diferente e isso poderia acarretar em problemas por exemplo nos cálculos de demissão do funcionário.

    26,5 * 5,00 (hora trabalhada) - 1100 = 967,00

     

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Alex Passos sexta-feira, 6 de maio de 2011 23:13
    sexta-feira, 6 de maio de 2011 20:55

Todas as Respostas

  • Alex, para ter o total de horas no formato de hora mesmo é só fazer assim:

    tsTotal.ToString(); (Sem utilizar o TotalHours)

    A propriedade TotalHours no caso seria utilizado para o cálculo de horas.

    Obs.:

    Não sei qual a regra da sua empresa, mas creio que o cálculo que esteja fazendo esteja errado, pois digamos que:

    Trabalhador tem salário de 1100,00.
    Valor por hora: 1100 / 220 horas mês = 5,00

    Regras de hora extra:
    Hora extra dias de semana = valor da hora + 60%
    Hora extra sábado = valor da hora + 75%
    Hora extra domingo e feriados = valor da hora + 100%
    Hora Adiciona Noturno (22:00 as 06:00) = valor da hora + porcentagem do dia + 30% 

    Faltou 28 horas = 140,00

    Hora extra dia normal de 1:30:00 = 12,00

    Valor total do trabalhador = 1100 - 140,00 + 12,00 = 972,00

    Se você fizer da maneira que esta fazendo o trabalhador receberia um valor diferente e isso poderia acarretar em problemas por exemplo nos cálculos de demissão do funcionário.

    26,5 * 5,00 (hora trabalhada) - 1100 = 967,00

     

     


    Abraço

    Estevam

    **** Se a reposta foi útil, então não esqueça de marca-lá. ***
    • Marcado como Resposta Alex Passos sexta-feira, 6 de maio de 2011 23:13
    sexta-feira, 6 de maio de 2011 20:55
  • Beleza.... não.... o meu sistema não esta fazendo o calculo monetários para pagamento... o cliente só quer saber se o funcionário tem hora extra ou não ai ele passa pra contabilidade fazer os calculos ou o funcionário tira folga.

     

    Agora nesse caso ai.... o meu resultado retornou assim:

     -1.02:29:50

    Como consigo representar assim: 1 dia 2:29:50 ou 1 dia 2 horas 29 minutos e 50 segundos.

    Só pra ficar mais claro pro cliente.


    Obrigado Alex Passos
    sexta-feira, 6 de maio de 2011 23:02
  • Já conseguir assim

     

                Dim hHora As String
                hHora = String.Format("{0}:{1}:{2}", Int(tsTotal.Hours), tsTotal.Minutes.ToString("00"), tsTotal.Seconds.ToString("00"))

                MsgBox(tsTotal.Days & " dia " & tsTotal.Hours.ToString("00") & ":" & tsTotal.Minutes.ToString("00") & ":" & tsTotal.Seconds.ToString("00"))

                hHora = Replace(hHora, "-", "")
                MsgBox(tsTotal.Days & " dia " & hHora)

     


    Obrigado Alex Passos
    sexta-feira, 6 de maio de 2011 23:13