Página 1 de 1
Diferença entre datas
Enviado: 26 Jan 2009 16:51
por JAIR RANGEL
Olá, Pessoal !
Estou precisando obter a diferença entre duas Datas.
A diferença seria em meses.
Alguém tem uma dica ou uma função que retorne esta diferença:
Desde já, obrigado !!!!!!!!
HARBOUR+MINIGUI+BRMAKE+CDX EM BREVE: MYSQL.
Re: DIFERENÇA ENTRE DATAS
Enviado: 26 Jan 2009 17:10
por Maligno
A diferença entre duas datas é feita pelo operador de subtração, como se fosse um número qualquer. O resultado será em dias. Para obter em meses, a coisa fica meio esquisita. Você poderia obter resultados do tipo 3,45 meses, por exemplo. Mas é só dividir o resultado por 30 (mês comercial). Mas fica esquisito.
Re: DIFERENÇA ENTRE DATAS
Enviado: 26 Jan 2009 17:44
por Toledo
Jair, esta função retorna a diferença por extenso entre duas datas.
Código: Selecionar todos
Function DifDatas(dDataInicial,dDataFinal)
v_dia:=v_mes:=v_ano:=0
v_anof=YEAR(dDataFinal)
v_mesf=MONTH(dDataFinal)
v_diaf=DAY(dDataFinal)
v_anoi=YEAR(dDataInicial)
v_mesi=MONTH(dDataInicial)
v_diai=DAY(dDataInicial)
IF v_diaf < v_diai
v_diaf+=30
v_mesf-=1
ENDIF
v_dia=v_diaf - v_diai
IF v_mesf < v_mesi
v_mesf+=12
v_anof-=1
ENDIF
v_mes=v_mesf - v_mesi
v_ano=v_anof - v_anoi
v_ret=''
IF v_ano>0
v_ret=STRZERO(v_ano,2)+IF(v_ano=1,' ano',' anos')+IF(v_mes>0,IF(v_dia>0,',',' e '),IF(v_dia>0,' e ',''))
ENDIF
IF v_mes>0
v_ret+=STRZERO(v_mes,2)+IF(v_mes=1,' mes ',' meses ')+IF(v_dia>0,'e ','')
ENDIF
IF v_dia>0
v_ret+=STRZERO(v_dia,2)+IF(v_dia=1,' dia',' dias')
ENDIF
Return (v_ret)
Abraços,
Re: DIFERENÇA ENTRE DATAS
Enviado: 27 Jan 2009 09:55
por JAIR RANGEL
Obrigado Maligno !
Obrigado Toledo !
Vou ver o que consigo com a Função DifDatas(Data1,Data2).
Abraço a todos......
HARBOUR+MINIGUI+BRMAKE+CDX -------- LOUCO PARA INICIAR MIGRAÇÃO P/MYSQL !