Listado Meses en rango de Periodo

Listado Meses en rango de Periodo

Postby jbrita » Tue Feb 08, 2022 2:51 pm

Amigo necesito saber cuanto meses hay en un rango de periodo
ejemplo
06/2021 al 02/2022 ... q me estregue esto:

06/2021
07/2021
08/2021
09/2021
10/2021
11/2021
12/2021
01/2022
02/2022

02/2022 al 02/2022 que me entrego esto..

02/2022

saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: Listado Meses en rango de Periodo

Postby hmpaquito » Tue Feb 08, 2022 3:37 pm

Facilmente se puede adaptar la siguiente funcion para que salga el formato que necesitas:

Code: Select all  Expand view  RUN
///////////////////////////////////////////////////////////////////////////
// Crea una tabla que contiene los meses entre dos fechas divididos entre
// dias, pe. { {02/01/94, 31/01/94}, {01/02/94, 28/02/94} }
// Separa tb. fechas que estan en distintos a¤os
FUNCTION LimFec(dFec1, dFec2)
Local aLimFec:= {}
Local dFecAct, dFecAnt
Local nMes
*
   dFecAct:= dFec1
   dFecAnt:= dFec1
   DO WHILE ( dFecAct < dFec2 ) .AND. ;
            ( ( Month(dFecAct) != Month(dFec2) )  .OR.;
              ( Year(dFecAct) != Year(dFec2)   )     )
      * Pasa a siguiente mes ******************************
      nMes:= Month(dFecAct)
      DO WHILE nMes == Month(dFecAct)
         dFecAct++
      ENDDO
      ******************************************************
      Aadd( aLimFec, {dFecAnt, dFecAct- 1} )
      dFecAnt:= dFecAct
   ENDDO
   Aadd(aLimFec, {dFecAct, dFec2})
*
RETURN aLimFec
*
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: Listado Meses en rango de Periodo

Postby jbrita » Wed Feb 09, 2022 4:03 pm

Dejo este codigo si alguno le sirve:

Function Main()

Local nMesI:=4
Local nAnoI:=2021

Local nMesF:=6
Local nAnoF:=2023


Local aPeriodo:={}
Local cFecha1,cFecha2

cFecha1 := CTOD("01/"+strzero( nMesI, 2) + "/" + str( nAnoI ) )
cFecha2 := CTOD("01/"+strzero( nMesF, 2) + "/" + str( nAnoF ) )

DO WHILE ( cFecha1 := CTOD("01/"+strzero( nMesI, 2) + "/" + str( nAnoI ) )) <= cFecha2
? cfecha1
nMesI++
If nMesI >12
nMesI:=1
nAnoI:=nAnoI+1
Endif
EndDo

return nil

Saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 45 guests