Programa de controle de horas trabalhadas, onde recebe o horário inicial de trabalho e apresenta o valor esperado de saída (completando 8 horas e 48 minutos por dia) e o valor máximo de trabalho para não ultrapassar 10 horas de trabalho por dia.
Temos como entrada um horário em horas:minutos
onde é feito os seguintes cálculos:
- Pegamos o tempo de intervalo por dia, sendo 1 hora de intervalo.
- Pegamos o tempo esperado de trabalho do dia, sendo 8 horas e 48 minutos.
- Somamos os valores para identificarmos o horário de saída esperado do dia
Exemplo: entrada as 7:51 (7 horas e 51 minutos da manhã)
Como 51 mais 48 são 99 minutos, deve ser subtraído 60 minutos porque 60 minutos são uma hora, restando somente o valor em minutos.
Como pegamos 60 minutos, sendo uma hora, devemos somar mais um ao valor das horas.
O resultado:
Temos como entrada um horário em horas:minutos
onde é feito os seguintes cálculos:
- Pegamos o tempo de intervalo por dia, sendo 1 hora de trabalho.
- pegamos o tempo máximo por dia, sendo de 10 horas no dia.
- somamos os valores para identificarmos o horário de saída máximo do dia.
Exemplo: entrada de 7:51 (7 horas e 51 minutos da manhã)
A soma dos valores é mais simples, ficando o seguinte resultado:
Portando o tempo máximo de trabalho é até as 18:51
Coloque o arquivo ControleHorasStart.bat
na sua área de trabalho, altere o caminho para este repositório no seu computador e clique nela para começar.
Este arquivo chama o script do powershell ControleHoras.ps1
com os comandos necessários para iniciar o projeto.
Para rodar scripts do powershell no windows deve ser liberado da seguinte forma:
- Acesse o powershell como administrador (Ctrl + X na área de trabalho)
- Rode o seguinte comando no console:
Set-ExecutionPolicy RemoteSigned
Quando roda o script é apresentado no console todas as seguintes informações:
Caso queira iniciar ele naturalmente, acesse o diretório ControleHoras/
deste repositório e rode o seguinte comando:
- Foram definidos os valores globais padrões do sistema, sendo eles o tempo de intervalo de uma hora, o tempo de trabalho padrão de cada dia e o tempo máximo de trabalho.
- Criamos um sistema de recebimento de um valor de tempo e é feito a transformação desse valor de entrada para timestamp.
- Temos o cálculo de horas como foi explicado na parte do cálculo, mas como o tipo de dado é o Timestamp ele já faz esse cálculo automático.
- Para ficar bonito, criei um quadro unicode com o código para criar quadros com os valores e com informação com cores.