Algo parecido a GOMONTH( )?

Post Reply
User avatar
noe aburto
Posts: 418
Joined: Wed Nov 26, 2008 6:33 pm
Location: Morelia, Mich. Mexico.

Algo parecido a GOMONTH( )?

Post by noe aburto »

Ejemplo de GOMONTH( ) (Función)

SET CENTURY ON
STORE GOMONTH({^1998-02-16}, 5) TO gdPlazo

CLEAR
? gdPlazo && Muestra 16/07/1998
? GOMONTH({^1998-12-31}, 2) && Muestra 28/02/1999
? GOMONTH({^1998-12-31}, -2) && Muestra 31/10/1998

Saben si hay algo semejante en FHW o xharbour

Gracias
Noé Aburto Sánchez
Tec. Prog. de Sistemas. -Morelia, Mich. México.
fwh 20.06, Harbour 3.2.0, bcc 7.4
TsBrowse 9.0, TsButton 7.0, xEdit 6.1
naburtos@gmail.com, noeaburto67@hotmail.com
User avatar
nageswaragunupudi
Posts: 10733
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 11 times
Contact:

Re: Algo parecido a GOMONTH( )?

Post by nageswaragunupudi »

AddMonth( <dDate>, <nMonths> ) --> dNewDate
Regards

G. N. Rao.
Hyderabad, India
User avatar
Sistem
Posts: 226
Joined: Sun May 13, 2012 7:52 am

Re: Algo parecido a GOMONTH( )?

Post by Sistem »

:) tarde demais.... ainda estava faltando com mes negativo

Code: Select all | Expand


MsgInfo(SomaMes(ctod("31/12/1998"), 2))
Function SomaMes(dData, nMes1)
Local x1, ndia:=day(dData), nMes:=month(dData), nAno:=year(dData), dNewDt

    for x1=1 to nMes1
        nMes++
        if nMes == 13
           nMes:=1
           nAno++
        endif
    next
    ? "ndia"+Str(ndia)
    ? "nmes"+Str(nmes)
    ? "nano"+Str(nano)

    dNewDt := ctod(strzero(1,2)+"/"+strzero(nMes,2)+"/"+strzero(nAno,4))
    if ndia > day(FimMes(dNewDt))
       dNewDt := FimMes(dNewDt)
    Else
       dNewDt := ctod(strzero(nDia,2)+"/"+strzero(nMes,2)+"/"+strzero(nAno,4))
    endif
Return dNewDt

Function Fimmes(data1)          // Funcao Final do mês
 Local final, ano:=Year(data1), mes:=Month(data1)+1, dia:="01"

 If mes = 13
    ano=ano+1
    mes=1
 Endif

 ano = Str(Ano-1900,2)
 mes = Str(mes,2)
 final = ctod(dia+"/"+mes+"/"+ano)
Return (final-1)
 
FWH2008 | xHarbour | BCC74 | SQLRDD
Post Reply