ayuda por favor averiguar primer dia o ultimo dia del mes anterior a una fecha

3,565 views
Skip to first unread message

Mario Alfredo

unread,
Apr 28, 2011, 1:23:01 PM4/28/11
to Comunidad de Visual Foxpro en Español
ayuda por favor averiguar primer dia o ultimo dia del mes anterior a
una fecha

28/04/2011
primer dia mes anterior
01/03/2011
ulrimo dia anterior
31/03/2011

15 /03/2011
primer dia
1/02/2011
ultimo dia
28/02/2011

gracias

lm...@cclf.com.pe

unread,
Apr 28, 2011, 1:28:09 PM4/28/11
to Comunidad de Visual Foxpro en Español
? date()-day(date()) ultimo dia del mes anterior

y date()-(day(date())-1) primer dia del mes

-----Mensaje original-----
From: Mario Alfredo
Sent: Thursday, April 28, 2011 12:23 PM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] ayuda por favor averiguar primer dia o ultimo dia del mes

Yvan GMAIL

unread,
Apr 28, 2011, 1:28:29 PM4/28/11
to publice...@googlegroups.com
Primer dia de la semana?
Pq primero dia lo entiendo como 01

Uhm.. para esto usaba gomonth().. pq ejemplo queria saber el ultimo dia del
mes anterior..
Ya que podia ser 28,29, 30,31..

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Mario Alfredo
Enviado el: Jueves, 28 de Abril de 2011 12:23 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] ayuda por favor averiguar primer dia o ultimo dia del mes

Ricardo Pina

unread,
Apr 28, 2011, 1:30:12 PM4/28/11
to publice...@googlegroups.com
Hola
 
gomont()
 
saludos
--
Ricardo Pina
D&SIP
Desarrollo y Servicios Informáticos Profesionales
www.dsip.com.ar

extremo

unread,
Apr 28, 2011, 2:02:39 PM4/28/11
to Comunidad de Visual Foxpro en Español
Para saber el ultimo dia del mes anterior yo haria lo siguiente

dFec = date()
dFec = ctod("01" + "/" + str(month(date()),2) + "/" +
str(year(date()) ,4))
ultimoFechaMesAnterior = dFec - 1
ultimoDiaMesAnterior = day(dFec - 1)

Bendiciones




On 28 abr, 13:30, Ricardo Pina <ricp...@gmail.com> wrote:
> Hola
>
> gomont()
>
> saludos
>
> El 28 de abril de 2011 14:23, Mario Alfredo <maovie...@gmail.com> escribió:
>
>
>
>
>
> > ayuda por favor averiguar primer dia o ultimo dia del mes anterior a
> > una fecha
>
> > 28/04/2011
> > primer dia mes anterior
> > 01/03/2011
> > ulrimo dia anterior
> > 31/03/2011
>
> > 15 /03/2011
> > primer dia
> > 1/02/2011
> > ultimo dia
> > 28/02/2011
>
> > gracias
>
> --
> Ricardo Pina
> D&SIP
> Desarrollo y Servicios Informáticos Profesionaleswww.dsip.com.ar- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

GeoSys Diseño de Software

unread,
Apr 28, 2011, 2:40:02 PM4/28/11
to publice...@googlegroups.com
Mira este enlace de portalfox del profesor Luis María Guayan:

http://www.portalfox.com/index.php?name=News&file=article&sid=35&mode=nested&order=0&thold=0

Anthony Contreras Peralta

Costa Rica.

WebRep
Overall rating
 

Patricio.Arguello

unread,
Apr 28, 2011, 2:46:05 PM4/28/11
to publice...@googlegroups.com
Att Mariano

Proba esta instrucci�n:

****inicio******
clear
set date to french

vfecha = ctod("28/04/2011") && paso la fecha

vsig_mes = gomonth(vfecha,-1)
vpri_mes_ant = ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
vsig_mes = vfecha
vult_dia_ant =
ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4)) -1

? vpri_mes_ant
? vult_dia_ant

**** fin ****

Slds.Patricio (Py)

--------------------------------------------------
From: "Mario Alfredo" <maov...@gmail.com>
Sent: Thursday, April 28, 2011 1:23 PM
To: "Comunidad de Visual Foxpro en Espa�ol"
<publice...@googlegroups.com>
Subject: [vfp] ayuda por favor averiguar primer dia o ultimo dia del mes

Carlos Miguel FARIAS

unread,
Apr 28, 2011, 4:36:02 PM4/28/11
to publice...@googlegroups.com
ultimoDiaMesAnterior = date( year( date() ), month( date( ) ), 1 ) - 1

Date sin parametros, devuelve la fecha de hoy.
year y month devuelven año y mes de la fecha que se le pasa
Date con parametros, compone la fecha a partir de un año, mes y dia que se le pasa
el date de afuera me el primero de mes, le resto 1, y tengo el ultimo dia del mes anterior.

El 28 de abril de 2011 15:46, Patricio.Arguello <patargu...@hotmail.com> escribió:
Att Mariano

Proba esta instrucción:


****inicio******
clear
set date to french

vfecha = ctod("28/04/2011")   && paso la fecha

vsig_mes = gomonth(vfecha,-1)
vpri_mes_ant =  ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
vsig_mes = vfecha
vult_dia_ant = ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4)) -1

? vpri_mes_ant
? vult_dia_ant

**** fin ****

Slds.Patricio (Py)

--------------------------------------------------
From: "Mario Alfredo" <maov...@gmail.com>
Sent: Thursday, April 28, 2011 1:23 PM
To: "Comunidad de Visual Foxpro en Español" <publice...@googlegroups.com>

Mario Alfredo

unread,
Apr 28, 2011, 6:16:12 PM4/28/11
to Comunidad de Visual Foxpro en Español
extremo asi si da el primer dia del mes anterior

pero para el ultimo dia del mes habria que componerlo
31/03/2011


On 28 abr, 12:02, extremo <protech.ven...@gmail.com> wrote:
> Para saber el ultimo dia del mes anterior yo haria lo siguiente
>
> dFec = date()
> dFec = ctod("01" + "/" + str(month(date()),2) + "/" +
> str(year(date()) ,4))
> ultimoFechaMesAnterior = dFec - 1
> ultimoDiaMesAnterior= day(dFec - 1)
>
> Bendiciones
>
> On 28 abr, 13:30, Ricardo Pina <ricp...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Hola
>
> > gomont()
>
> > saludos
>
> > El 28 de abril de 2011 14:23, Mario Alfredo <maovie...@gmail.com> escribió:
>
> > > ayuda por favor averiguar primer dia o ultimo dia del mes anterior a
> > > una fecha
>
> > > 28/04/2011
> > > primer dia mes anterior
> > > 01/03/2011
> > > ulrimo dia anterior
> > > 31/03/2011
>
> > > 15 /03/2011
> > > primer dia
> > > 1/02/2011
> > > ultimo dia
> > > 28/02/2011
>
> > > gracias
>
> > --
> > Ricardo Pina
> > D&SIP
> > Desarrollo y Servicios Informáticos Profesionaleswww.dsip.com.ar-Ocultar texto de la cita -

Mario Alfredo

unread,
Apr 28, 2011, 6:18:22 PM4/28/11
to Comunidad de Visual Foxpro en Español
miguel farias si da la fecha ultima del mes anterior
gracias
a todos

On 28 abr, 14:36, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> ultimoDiaMesAnterior = date( year( date() ), month( date( ) ), 1 ) - 1
>
> Date sin parametros, devuelve la fecha de hoy.
> year y month devuelven año y mes de la fecha que se le pasa
> Date con parametros, compone la fecha a partir de un año, mes y dia que se
> le pasa
> el date de afuera me el primero de mes, le resto 1, y tengo el ultimo dia
> del mes anterior.
>
> El 28 de abril de 2011 15:46, Patricio.Arguello <patarguello2...@hotmail.com
>
>
>
>
>
>
>
> > escribió:
> > Att Mariano
>
> > Proba esta instrucción:
>
> > ****inicio******
> > clear
> > set date to french
>
> > vfecha = ctod("28/04/2011")   && paso la fecha
>
> > vsig_mes = gomonth(vfecha,-1)
> > vpri_mes_ant =
> >  ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
> > vsig_mes = vfecha
> > vult_dia_ant = ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
> > -1
>
> > ? vpri_mes_ant
> > ? vult_dia_ant
>
> > **** fin ****
>
> > Slds.Patricio (Py)
>
> > --------------------------------------------------
> > From: "Mario Alfredo" <maovie...@gmail.com>

Mario Alfredo

unread,
Apr 28, 2011, 6:47:14 PM4/28/11
to Comunidad de Visual Foxpro en Español
miguel farias si da la fecha ultima del mes anterior
gracias
a todos

On 28 abr, 14:36, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> ultimoDiaMesAnterior = date( year( date() ), month( date( ) ), 1 ) - 1
>
> Date sin parametros, devuelve la fecha de hoy.
> year y month devuelven año y mes de la fecha que se le pasa
> Date con parametros, compone la fecha a partir de un año, mes y dia que se
> le pasa
> el date de afuera me el primero de mes, le resto 1, y tengo el ultimo dia
> del mes anterior.
>
> El 28 de abril de 2011 15:46, Patricio.Arguello <patarguello2...@hotmail.com
>
>
>
>
>
>
>
> > escribió:
> > Att Mariano
>
> > Proba esta instrucción:
>
> > ****inicio******
> > clear
> > set date to french
>
> > vfecha = ctod("28/04/2011")   && paso la fecha
>
> > vsig_mes = gomonth(vfecha,-1)
> > vpri_mes_ant =
> >  ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
> > vsig_mes = vfecha
> > vult_dia_ant = ctod("01/"+str(month(vsig_mes),2)+"/"+str(year(vsig_mes),4))
> > -1
>
> > ? vpri_mes_ant
> > ? vult_dia_ant
>
> > **** fin ****
>
> > Slds.Patricio (Py)
>
> > --------------------------------------------------
> > From: "Mario Alfredo" <maovie...@gmail.com>

Edgar Acevedo

unread,
Apr 28, 2011, 9:24:57 PM4/28/11
to publice...@googlegroups.com
Hace muuuuuucho tiempo yo hice una función para determinar el primer día y el último día de cualquier mes.  La función es la siguiente:

FUNCTION FIN_MES
  PARAMETER M.FechaD
  M.Ini_Fin_Rs = CTOD("  /  /    ")
  IF NOT EMPTY(M.FechaD)

    M.Ini_Fin_Rs = GOMONTH(CTOD('01/' + TRANSFORM(MONTH(M.FechaD), '@L 99') + '/' + ;
      TRANSFORM(YEAR(M.FechaD), '9999')), 1) - 1

  ENDIF
RETURN M.Ini_Fin_Rs

Entonces, si quiero el ultimo día del mes anterior solamente le digo:

?  FIN_MES(GOMONTH(DATE(), -1))

Nota que le debes pasar como parámetro cualquier fecha de cuyo mes quieras obtener el último día.

Luis Maria Guayan

unread,
Apr 29, 2011, 10:28:06 AM4/29/11
to publice...@googlegroups.com
Último día del mes: Esta función retorna la fecha del último día del mes de una expresión Date o DateTime pasada como parámetro.

? EoM(DATE())
FUNCTION EoM(tdFecha)
  LOCAL ld
  ld = GOMONTH(tdFecha,1)
  RETURN ld - DAY(ld)
ENDFUNC

Primer día del mes: Esta función retorna la fecha del primer día del mes de una expresión Date o DateTime pasada como parámetro.

? BoM(DATE())
FUNCTION BoM(tdFecha)
  RETURN DATE(YEAR(tdFecha),MONTH(tdFecha),1)
ENDFUNC


Para sumar o restar un mes debes utilizar GOMONT()

Entonces para tu ejemplo, con las funciones de arriba quedaría:

ldFecha = DATE(2011,04,28)
* primer dia mes anterior
? BoM(GOMONT(ldFecha,-1))
-> 01/03/2011
* ultimo dia anterior
? EoM(GOMONT(ldFecha,-1))
-> 31/03/2011

Tomado de PortalFox:
-- Trabajar con fechas y horas en Visual FoxPro --
http://www.portalfox.com/article.php?sid=1162

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Carlos Miguel FARIAS

unread,
Apr 29, 2011, 5:43:55 PM4/29/11
to publice...@googlegroups.com
La formula que escribi aplica metodologia KISS (Keep it single, stupid)   Mantenlo simple, estupido
361.gif
360.gif

ibania blanco

unread,
May 17, 2011, 10:51:58 AM5/17/11
to Comunidad de Visual Foxpro en Español
gracias a todos

On 29 abr, 15:43, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> La formula que escribi aplica metodologia KISS (Keep it single, stupid) [?]
> Mantenlo simple, estupido [?]
> >  * Luis María Guayán
> > Tucumán, Argentina
> > _________________________
> >http://www.PortalFox.com<http://www.portalpox.com>
> > Nada corre como un zorro
> > _________________________
> > *
>
> > El 28/04/2011 14:23, Mario Alfredo escribió:
>
> > ayuda por favor averiguar primer dia o ultimo dia del mes anterior a
> > una fecha
>
> > 28/04/2011
> > primer dia mes anterior
> > 01/03/2011
> > ulrimo dia anterior
> > 31/03/2011
>
> > 15 /03/2011
> > primer dia
> > 1/02/2011
> > ultimo dia
> > 28/02/2011
>
> > gracias
>
>
>
>  361.gif
> < 1 KBVerDescargar
>
>  360.gif
> < 1 KBVerDescargar

Jaime H. Díaz G.

unread,
May 17, 2011, 1:24:45 PM5/17/11
to publice...@googlegroups.com
Yo usaría lo siguiente:
 
ldFecha=date() && fecha
ldUltdiaMesAnt=date(year(ldFecha),month(ldFecha),1)-1
Un abrazo

Walter R. Ojeda Valiente

unread,
May 17, 2011, 1:41:39 PM5/17/11
to publice...@googlegroups.com
Pues más corto sería:

ldFecha = DATE()
ldUltDiaMesAnt = ldFecha - DAY(ldFecha)

Saludos.

Walter.

Saludos.

Walter.




Date: Tue, 17 May 2011 12:24:45 -0500
Subject: Re: [vfp] Re: ayuda por favor averiguar primer dia o ultimo dia del mes anterior a una fecha
From: jhu...@gmail.com
To: publice...@googlegroups.com

Sebastian Mercado

unread,
May 17, 2011, 2:23:06 PM5/17/11
to publice...@googlegroups.com
Otra opcion:

_dia = CTOD("01/" + SUBSTR(_miFecha, 4, 7))
_ultimoDia = _dia - 1



2011/5/17 Jaime H. Díaz G. <jhu...@gmail.com>

Victor Espina

unread,
May 18, 2011, 7:10:21 AM5/18/11
to publice...@googlegroups.com
Mi granito de arena (no he leido todo el hilo, asi que mis disculpas si ya alguien posteo esta solucion):

PrimerDia:

FUNCTION primerDia(pdFecha)
 IF VARTYPE(pdFecha)="T"
  pdFecha = TTOD(pdFecha)
 ENDIF
 RETURN pdFecha - (DAY(pdFecha) - 1)
ENDFUNC


Ultimo dia:

FUNCTION ultimoDia(pdFecha)
 RETURN GOMONTH(primerDia(pdFecha),1) - 1
ENDFUNC


Saludos

Victor Espina

Carlos Miguel FARIAS

unread,
May 18, 2011, 7:15:55 AM5/18/11
to publice...@googlegroups.com
Recupera el hilo, varios sugerimos formulas de un solo renglon para hacer el calculo.

Victor Espina

unread,
May 18, 2011, 12:40:07 PM5/18/11
to publice...@googlegroups.com
Como dije, no tuve tiempo de leer todo el hilo asi que no tenia forma de saber si ya habian posteado algo como esto. 

Victor Espina

ibania blanco

unread,
May 24, 2011, 5:25:17 PM5/24/11
to Comunidad de Visual Foxpro en Español
sebastian
_mifecha debe de estar convertida a caracter
porque con una fecha date da error
segundo
el ultimo del mes debe de ser del mes actual no del mes anterior
debe de ser del mismo mes

ibania blanco

unread,
May 24, 2011, 5:30:37 PM5/24/11
to Comunidad de Visual Foxpro en Español
calma carlos
victor espina
es fundador


On 18 mayo, 05:15, Carlos Miguel FARIAS <carlosmiguelfar...@gmail.com>
wrote:
> Recupera el hilo, varios sugerimos formulas de un solo renglon para hacer el
> calculo.
>

HernanCano

unread,
May 25, 2011, 1:48:40 AM5/25/11
to Comunidad de Visual Foxpro en Español
Por favor, amigos:

Las soluciones con fechas de tipo caracter no son adecuadas, como lo
indican
extremo
patricio
edgar
sebastian

Mientras que las soluciones con campos naturales de fecha (buen método
usar la función DATE() ), son las más acertadas, por:
carlos
luis
jaime
walter
victor

Chao.
Reply all
Reply to author
Forward
0 new messages