Cantidad de meses en un Periodo de Fechas

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

victorale07
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 20 Ago 2009 19:55
Localização: chile

Cantidad de meses en un Periodo de Fechas

Mensagem por victorale07 »

Hola Amigos:

Necesito una funcion o Procedimiento para calcular o saber la cantidad de meses entre un periodo de fechas.

Ejemplo: 20.10.2009 al 05.03.2011
o 10.03.2011 al 15.05.2016

Gracias
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Cantidad de meses en un Periodo de Fechas

Mensagem por alxsts »

Olá!

Deve haver alguma função que faça isto na CA-Tools ou Nanfor.

Você pode fazer isto com uma aritmética simples:

Código: Selecionar todos

Set Date British
Set Century ON
Set Epoch to 1930

? ( CtoD( '15/05/2016' ) - CtoD( '10/03/2011' ) ) / 30 
---> 63.10
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cantidad de meses en un Periodo de Fechas

Mensagem por Pablo César »

En cuanto el colega respondia... yo ya estaba criando la funcion que sirviria para este caso.

Código: Selecionar todos

SET DATE TO BRITISH
SET CENTURY ON

? QMESES(CTOD("01/01/2011"),CTOD("01/02/2010")) // De propósito. Orden de las fechas decrecientes

FUNCTION QMESES(dDt1,dDt2)
IF dDt2<dDt1
   dDt3:=dDt2
   dDt2:=dDt1
   dDt1:=dDt3
ENDIF
nQMonths:=1
cMonth:=LEFT(DTOS(dDt1),6)
FOR I=dDt1 TO dDt2
    IF !(LEFT(DTOS(I),6)=cMonth)
       nQMonths:=nQMonths+1
       cMonth:=LEFT(DTOS(I),6)
    ENDIF
NEXT
Return nQMonths
Observe que debe haber una verificacion de fechas en los parametros. La primera fecha deberá ser menor que la segunda. Fuera eso, fué muy simples de elaborarla. Espero haber ayudado.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cantidad de meses en un Periodo de Fechas

Mensagem por Pablo César »

Deve haver alguma função que faça isto na CA-Tools ou Nanfor
No, no hay. Ya verifiqué y no existe en ninguna de esas LIBs que mencionaste. La funcion que disponibilizé, irá funcionar sin problemas, mismo en los meses que no cumplen 30 dias, asi como febrero... Bueno, vale como aporte al prendizaje !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
victorale07
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 20 Ago 2009 19:55
Localização: chile

Re: Cantidad de meses en un Periodo de Fechas

Mensagem por victorale07 »

Hola:

Gracias por su ayuda, me han servido sus rutinas.-

Victor.

:)Pos
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Cantidad de meses en un Periodo de Fechas

Mensagem por alxsts »

Olá!

Gracias Pablo!

Se eu estava em dúvida quanto à existência da função nas bibliotecas citadas, já não mais estou.

Muito bom que atendeu ao amigo Victor.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Cantidad de meses en un Periodo de Fechas

Mensagem por Pablo César »

Isso aí.. Alexandre, você também sempre muito cooperativo e em qualquer idioma... rs

Na verdade fiz essa função com o propósito de demostrar que varrer um período de datas é muito fácil e não exige tanto processamento. Fica aí para proveito de todos. Valeu !

Grande abraço !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Responder