COMO CALCULAR HORAS E DATAS NO VB??
BOA TARDE!
Cara,
Estou com uma grande dificuldade em fazer um programinha que calcule horas, exemplo. Será uma folha de ponto, com dois botões e dois text box (enabled), o que acontece, quando clicar no botao entrar o primeiro carregue a hora atual, e ao clicar no segundo ele carregue a hora final, ate ai tudo bem? Isso é facil. Mas existe um terceiro campo que calcula a diferença dessas horas, exemplo, entrou as 12:15 e saiu as 17:50 eu preciso que ele calcule o tempo de trabalho desse funcionario e tambem o atraso de 0:15 minutos e a saida antecipada de 10 minutos, assim eu terei o tempo de trabalho real. Mas eu nao consigo fazer o vb calcular as horas, como posso fazer? Meu email é eugeniots@terra.com.br, ficarei muito agradecido se puder me ajudar.
Cara,
Estou com uma grande dificuldade em fazer um programinha que calcule horas, exemplo. Será uma folha de ponto, com dois botões e dois text box (enabled), o que acontece, quando clicar no botao entrar o primeiro carregue a hora atual, e ao clicar no segundo ele carregue a hora final, ate ai tudo bem? Isso é facil. Mas existe um terceiro campo que calcula a diferença dessas horas, exemplo, entrou as 12:15 e saiu as 17:50 eu preciso que ele calcule o tempo de trabalho desse funcionario e tambem o atraso de 0:15 minutos e a saida antecipada de 10 minutos, assim eu terei o tempo de trabalho real. Mas eu nao consigo fazer o vb calcular as horas, como posso fazer? Meu email é eugeniots@terra.com.br, ficarei muito agradecido se puder me ajudar.
Só para dar uma bicada:
No VB, as funções DateDiff e DateAdd servem para mostrar a diferença entre duas datas e somar valores á datas, respectivamente.
Como primeiro parà ¢metro em ambas as funções, você deve inserir o INTERVALO desejado para o cálculo, por exemplo, se deverá ser em anos, meses, dias, horas, minutos ou segundos.
Esse parà ¢metro é passado como uma das máscaras de formatação de datas do VB, ou seja:
"yyyy" - ano
"m" - mês
"d" - dia
"h" - hora
"n" - minuto
"s" - segundo
Se eu quizer, por exemplo, diminuir duas horas á uma data em formato longo (por exemplo, a data corrente), eu posso fazer:
MsgBox DateAdd( "h", 2, Now )
Para saber a idade atual de um cliente nascido em 12/05/1945, eu faria, por exemplo:
MsgBox DateDiff("d", CDate("12/05/1942"), Now)
Para saber quanto tempo há em uma jornada, em minutos, eu calcularia o perÃodo entre a entrada e a saÃda, subtraindo o intervalo de almoço, os 15 minutos de praxe para a entrada matinal e vespertina e ainda, os 10 minutos na antecipação da saÃda. Como se pode prever, dá para resumir tud em apenas duas operações, na verdade.
No horário de entrada, você acresce os 40 minutos de praxe e em seguida, na operação seguinte, apenas calcula a soma entre os intervalos abrangidos pelos perÃodos matutino e vespertino.
No VB, as funções DateDiff e DateAdd servem para mostrar a diferença entre duas datas e somar valores á datas, respectivamente.
Como primeiro parà ¢metro em ambas as funções, você deve inserir o INTERVALO desejado para o cálculo, por exemplo, se deverá ser em anos, meses, dias, horas, minutos ou segundos.
Esse parà ¢metro é passado como uma das máscaras de formatação de datas do VB, ou seja:
"yyyy" - ano
"m" - mês
"d" - dia
"h" - hora
"n" - minuto
"s" - segundo
Se eu quizer, por exemplo, diminuir duas horas á uma data em formato longo (por exemplo, a data corrente), eu posso fazer:
MsgBox DateAdd( "h", 2, Now )
Para saber a idade atual de um cliente nascido em 12/05/1945, eu faria, por exemplo:
MsgBox DateDiff("d", CDate("12/05/1942"), Now)
Para saber quanto tempo há em uma jornada, em minutos, eu calcularia o perÃodo entre a entrada e a saÃda, subtraindo o intervalo de almoço, os 15 minutos de praxe para a entrada matinal e vespertina e ainda, os 10 minutos na antecipação da saÃda. Como se pode prever, dá para resumir tud em apenas duas operações, na verdade.
No horário de entrada, você acresce os 40 minutos de praxe e em seguida, na operação seguinte, apenas calcula a soma entre os intervalos abrangidos pelos perÃodos matutino e vespertino.
Tópico encerrado , respostas não são mais permitidas