VERIFICAR SE A HORA AM OU PM

ELMO01 04/03/2017 09:47:45
#472110
Oi pessoal

Como faço para verificar se uma variável tipo TimeSpan está AM ou PM?

Obrigado.
KERPLUNK 04/03/2017 10:48:12
#472113
TimeSpan é um tipo para medida/contagem de tempo. AM/PM é formato de hora. São duas coisas que não têm nada a haver uma com a outra.
ELMO01 04/03/2017 11:09:57
#472116
KERPLUNK obrigado por ter respondido, estou fazendo um programa para cálculo de ponto e estou em um empasse, a primeira hora geralmente é de 08:00 AM, mais se o colaborador trabalhar no período noturno então a entrada do primeiro período pode ser às 18:00 horas. Sabemos que esta hora ainda não faz parte do período noturno, porque o período noturno por lei começa às 22:00 horas, como faço para calcular o período de 18:00 às 21:59?
Como faço também para que o sistema verifique que a hora está no período DIURNO ou NOTURNO?

Obrigado,
KERPLUNK 04/03/2017 12:04:04
#472118
Cara, na real, estou cansado de ver gente com problema de calculo de ponto. é bastante simples. Vamos fazer assim: Não estou no meu computador agora, só volto na segunda-feira(06/03) daí vou fazer uma classe especializada em calculo de horas, incluindo horas com adicional noturno e tudo mais. Assim, deixo o código aqui disponível pra quem quiser usar em seus projetos. Mas para dar uma idéia geral de como funciona:
A classe recebe entradas e saídas, que vão ser as horas do ponto. Com isso, posso fazer uma [Ô]timeline[Ô] da jornada de trabalho. Percorro essa timeline e horas que são anteriores à um determinado horário são somadas normal, as demais, são somadas em uma outra propriedade. Assim, teremos o total de horas normais e o total de horas com adicional noturno, daí o calculo fica fácil.
ELMO01 04/03/2017 12:09:26
#472119
Blz, então fico no aguardo.

Obrigado
ELMO01 10/03/2017 20:49:42
#472361
KERPLUNK vc fez a fazer a classe para calculo de horas de me disse que iria fazer??
JABA 10/03/2017 21:47:41
#472363
dim  t = new TimeSpan(3, 0, 0)
dim s = new DateTime().Add(t).ToString([Ô]hh:mm tt[Ô])
Console.WriteLine(s)


A saída será 03:00 AM
KERPLUNK 11/03/2017 12:12:37
#472372
Citação:

:
KERPLUNK vc fez a fazer a classe para calculo de horas de me disse que iria fazer??


Putz.... esqueci... Me lembrem disso essa semana senão posso esquecer de novo.
NILSONTRES 11/03/2017 12:23:21
#472373
Resposta escolhida
Mas vc não deve tratar como AM/PM, mas sim de, 00 a 23:59, basta identificar a hora.
Eu já fiz programinha para ponto, o cliente já nem existe mais, só que agora precisa inclusive de homologação, se não me engano.
Caso contrario pode sofrer alguma consequência, o funcionário que digitar o ponto em algum sistema não homologado, pode processar a empresa.
Isso foi o que li alguns anos atras, não me pergunte onde, se alguém puder confirma ou negar, gostaria de saber.
RICARDOCENTENO 11/03/2017 15:46:19
#472376
Citação:

:
Mas vc não deve tratar como AM/PM, mas sim de, 00 a 23:59, basta identificar a hora.
Eu já fiz programinha para ponto, o cliente já nem existe mais, só que agora precisa inclusive de homologação, se não me engano.
Caso contrario pode sofrer alguma consequência, o funcionário que digitar o ponto em algum sistema não homologado, pode processar a empresa.
Isso foi o que li alguns anos atras, não me pergunte onde, se alguém puder confirma ou negar, gostaria de saber.


Esta regra ainda é válida, inclusive os novos sistemas de pontos são obrigatórios a imprimir o comprovante de entrada/saída do funcionário.
Quando ao cálculo de horas, é aconselhável a usar no formado 24Hrs como proposto pelo amigo NILSONTRES, até para os cálculos usando as variáveis do tipo timespan ficam mais fáceis.
ELMO01 14/03/2017 16:42:44
#472429
Pessoal, já pensei neste problema de homologação, vou primeiro fazer o sistema e depois de pronto e testado ai sim vou fazer a homologação nos órgãos competentes, mais primeiro tenho que fazer o sistema, testar de várias formar possíveis. Mais mesmo assim agradeço a todos.
Tópico encerrado , respostas não são mais permitidas