Amigo tengo la necesidad de saber cuando meses hay entre 2 periodos :
ejemplo:
04-2017 al 01-2018 hay 9 meses
esos quiero y para cualquier periodo que me sirva (mysql)
saludos
Set Date Brit
Set Century On
Use Banco_de_Dados_1
Sele 0
Use Banco_de_Dados_2
Sele Banco_de_Dados_1
While !Eof()
Grava_dias( Codigo, Data_Inicial, Data_Final )
Skip
EndDo
Return Nil
Function Grava_Dias( xCodigo, dData_Ini, dData_Fim )
Local i, nQtd_Dias:=0, nQual_Mes:=Month( dData_Ini )
Local dFim_Check:=dData_Ini, lPri_mes:=.t.
Local cAlias:=Alias()
Sele Banco_De_Dados_2
While ( dFim_Check < dData_Fim )
If Month( dFim_Check ) # ( nQual_Mes )
Append Blank
nQtd_Dias:=If(lPri_mes, nQtd_Dias-1, nQtd_Dias)
Replace Codigo With xCodigo
Replace Qtd_Dias With nQtd_Dias
Replace Mes_De_Referencia With Right( DToC( dFim_Check-1 ), 7 )
lPri_mes:=.f.
nQtd_Dias:=0
nQual_Mes:=Month( dFim_Check )
EndIf
nQtd_Dias++
dFim_Check++
If ( dFim_Check = dData_Fim )
nQtd_Dias:=Day( dData_Fim )
Append Blank
Replace Codigo With xCodigo
Replace Qtd_Dias With nQtd_Dias
Replace Mes_De_Referencia With Right( DToC( dFim_Check ), 7 )
Exit
Endi
EndDo
Sele cAlias
Retu Nil
jbrita wrote:gracias Jose funciono bien... otra consulta mas
si al Generar Cobro
mes 8
Año 2017
12/04/2017 quedaria asi 12/08/2017
pero cuando el dia es mayor al de otro mes:
Generar Cobro
mes 9
Año 2017
31/08/2017 como quedaria aca 31/09/2017 esto quedaria malo ya que septiembre
tiene hasta 30 dias, tendria que ser 30-09-2017
Generar Cobro
mes 2
Año 2017
31/01/2017 como quedaria aca 31/02/2017 esto quedaria malo ya que septiembre
tiene hasta 30 dias, tendría que ser 28-02-2017
en mysql como seria, ya que quiero conservar el dia, pero si el dia del mes anterior es mayor a ahi mi problema
saludos
jbrita wrote:muchs gracias resulto todo bien
saludos
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 37 guests