Clipper On Line • Ver Tópico - Diferença entre datas

Diferença entre datas

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Diferença entre datas

Mensagempor JAIR RANGEL » 26 Jan 2009 15:51

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.
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 vezes

Re: DIFERENÇA ENTRE DATAS

Mensagempor Maligno » 26 Jan 2009 16:10

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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar de usuário

Maligno
Membro Master

Membro Master
 
Mensagens: 6390
Data de registro: 06 Jul 2004 01:40
Cidade/Estado: Londrina/PR
Curtiu: 1 vez
Mens.Curtidas: 14 vezes

Re: DIFERENÇA ENTRE DATAS

Mensagempor Toledo » 26 Jan 2009 16:44

Jair, esta função retorna a diferença por extenso entre duas datas.

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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Re: DIFERENÇA ENTRE DATAS

Mensagempor JAIR RANGEL » 27 Jan 2009 08:55

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 !
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar de usuário

JAIR RANGEL
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 177
Data de registro: 19 Jul 2005 16:01
Cidade/Estado: RIO DE JANEIRO
Curtiu: 1 vez
Mens.Curtidas: 2 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Google Adsense [Bot] e 13 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro