Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

webfuture

Somar horas entre datas

Recommended Posts

Olá pessoal, estou montando um sistema para controle de ponto, onde em determinado relatório são exibidos os dias trabalhados pelo funcionário, com seus horários entrada-saida, horário de saida e retorno do almoço, e no final da listagem preciso informar quantas horas trabalhou no mes e quantas foram de almoço, etc... Tipo, somar do dia 1 ao dia 30 quantas horas foram trabalhadas tirando o total de horas que foram de almoço...

 

Tem como calcular isto ? Uso banco de dados MySQL.

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, estou criando algo semelhante, mas vai rodar com banco access.

No meu caso, eu tenho uma rotina que chamo de "fechamento". Nela, meu script faz os calculos e depois armazeno os resultados em uma tabela de nome "fechamento mensal". Com os dados previamente calculados nessa tabela, posso criar qualquer tipo de relatorio.

 

A idéia é somar por dia e por funcionario, as horas apontadas. Exemplo:

 

hora de saida - horade entrada (manha) + hora saida - hora entrada (tarde) + hora saida - hora entrada (noite) = total de horas do dia.

 

Acho que a partir dai você já tem uma idéia.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar a função DateADD()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá mibnetweb e xanburzum, obrigado pela resposta, gostaria de saber se existe algum exemplo com DateAdd para que eu possa adaptar e testar.

 

Pensei em algo como o sistema que você esta montando também, bem completo, a lógica até tenho mas o que esta faltando é a função ou como fazer isto que ainda não consegui mesmo...

 

Até,

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, procurei pela função dateadd para fazer esta soma, mas não encontrei uma forma de fazer isto, só vi outros exemplos, bom, pensei em remover os : dois pontos das horas e fazer uma soma e alguns calculos para dar certo, mas ai acho que é muita gambiarra né....

 

Alguém me da um help?

 

Xavier

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa a funcaun dateAdd()

 

DateAdd(intervalo,numero,date)

 

Parametro

intervalo Requerido.

 

Número

Necessário. Expressão numérica que é o número do intervalo que pretende adicionar. A expressão numérica tanto pode ser positivo, para datas no futuro, ou negativo, para datas no passado.

 

data

Necessário. Variante ou literal representando a data para a qual intervalo é adicionado.

 

Descrição

 

yyyy - Year

q - Quarter

m - Month

y - Day of year

d - Day

w - Weekday

ww - Week of year

h - Hour

n - Minute

s - Second

 

DateAdd("m",1,"31-Jan-00")

 

outro exemplo

 

<%
xDate = "December 19 2003"
Response.Write DateAdd("d",10,xDate)
%>
subtraindo com Add e nao com DateDiff
<%
xDate = "December 19 2003"
Response.Write DateAdd("d",-10,xDate)
%>

var1 = Now()
Response.Write("var1 = " & var1 & "<br>")
Response.Write("var1 plus 10 days = " & DateAdd("d", 10, var1) & "<br>")
Response.Write("var1 minus 10 days = " & DateAdd("d", -10, var1) & "<br>")
Response.Write("var1 plus 3 months = " & DateAdd("m", 3, var1) & "<br>")
Response.Write("var1 minus 3 months = " & DateAdd("m", -3, var1) & "<br>")
Response.Write("var1 plus 2 hours = " & DateAdd("h", 2, var1) & "<br>")
Response.Write("var1 minus 2 hours = " & DateAdd("h", -2, var1) & "<br>")

Resultado:

var1 = 9/1/99 1:41:04 PM

var1 plus 10 days = 9/11/99 1:41:04 PM

var1 minus 10 days = 8/22/99 1:41:04 PM

var1 plus 3 months = 12/1/99 1:41:04 PM

var1 minus 3 months = 6/1/99 1:41:04 PM

var1 plus 2 hours = 9/1/99 3:41:04 PM

var1 minus 2 hours = 9/1/99 11:41:04 AM

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.