mi funcion. dada una fecha devolver el rango de la semana

mi funcion. dada una fecha devolver el rango de la semana

Postby goosfancito » Wed Jun 25, 2014 3:42 pm

Necesitaba que me devuelva la fecha comprendida entre el LUNES y VIERNES inclusive de una fecha dada.
Code: Select all  Expand view  RUN
FUNCTION main()
    local aRango:= array(2)
    aRango:= fSemana("24/07/2014")

    msginfo("desde: " + dtoc(aRango[1]) + " hasta: " + dtoc(aRango[2]))   // desde: 21/07/2014 hasta: 25/07/2014

    RETURN (nil)

FUNCTION fsemana(dFecha) CLASS TRep
   dFecha:= dFecha - (DoW(dfecha) -2)
   RETURN ({dFecha, dFecha + 4})
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby joseluisysturiz » Thu Jun 26, 2014 2:18 am

Por favor se un poco mas especifico en lo que quieres obtener, si son los dias que hay entre las 2 fechas o que, por lo menos yo no entiendo bien pregunta, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby Manuel Valdenebro » Thu Jun 26, 2014 4:52 am

dFecha := CTOD("24/07/2014")
nDia := DOW (dFecha)
IF nDia > 1 .and. nDia < 7
msginfo("desde: " + dtoc(dFecha-(nDia-2)) + " hasta: " + dtoc(dFecha+(6-nDia)))
ELSE
msgstop (CDOW(dFecha), "Fecha no válida.")
ENDIF

Puedes convertirlo en una función y usar un array si lo necesitas.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby colthop » Thu Jun 26, 2014 8:18 am

Hola Manuel:

Yo usaría cDow(Fecha) que te devuelve "Lunes", "Martes" .... o "Monday", "Tuesday"... y con un do case dependiendo lo que te devuelva le quitaría para hallar la primera y sumaria para la segunda:

Mas o menos:

do case
case cdow(fecha) = "Lunes"
fechades = fecha
fechahas = fecha + 5
case cdow(fecha) = "Martes"
fechades = fecha - 1
fechahas = fecha + 4

....
...
endcase

Espero que te sirva

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby hmpaquito » Thu Jun 26, 2014 8:40 am

colthop,

La función de Manuel es independiente del idioma. Así que da igual que el Domingo que devuelve CDoW() sea Sunday, Dimanche, Sonntag...

Saludos.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby colthop » Thu Jun 26, 2014 8:47 am

Hola que tal:

Me parece correcta tu observación pero todos sabemos cual es el lenguaje del compilador (o linkador) y se puede adaptar dependiendo del idioma. Ya que esta función no depende del lenguaje del usuario sino del compilador, a mi me lo devolvía en ingles pero le puse:

Code: Select all  Expand view  RUN
REQUEST HB_LANG_ES
REQUEST HB_CODEPAGE_ESWIN
HB_LangSelect('ES')
HB_SetCodePage('ESMWIN')


Y ya me lo devuelve en español.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby colthop » Thu Jun 26, 2014 8:52 am

Hola que tal:

Incluso pensando un poquito independientemente del lenguaje si tu pones

Tlunes = cdow(ctod("23/07/2014"))

Tu sabes que ese día es "Lunes" o "Monday" y en la variable TLunes esta. Y si luego lo comparas en Do case como "case cdow(fecha) = TLunes te entrará o no independiente del idioma.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby hmpaquito » Thu Jun 26, 2014 9:27 am

colthop,

Es verdad que se puede configurar el idioma... pero imaginate que quieres hacer una funcion que se pueda incorporar a la libreria fivewin...
No es buena cosa depender de strings dependientes del idioma... son cambiantes... hay que ir a lo fijo... y lo fijo es que dow() devuelve como 1 si el dia es domingo y 2 para el lunes y asi... Da igual que el primer dia de la semana (civil) sea el lunes, da igual. Eso es fijo, aquí y en Sebastopol, en harbour, xharbour y en Clipper; con configuración de languaje inglés, ruso o thai. :)

Saludos
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby colthop » Thu Jun 26, 2014 9:39 am

Hola que tal:

Tu mismo has dado la solución en vez de cDow utiliza Dow y si es 1 sabes que es domingo y 4 que es miércoles y actúa en el do case en consecuencia. Me parece muy bien lo que dices pero creo que podrías indicar soluciones o adaptar ideas y crear las soluciones en vez de criticar.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby hmpaquito » Thu Jun 26, 2014 9:56 am

¿ Me puedes decir EXACTAMENTE que he criticado yo?
¿ No he hecho yo EXACTAMENTE lo mismo que tu ? A saber, aportar desde mi punto de vista una solución.
¿ No ha sido mi fin el mismo que el tuyo, que no es sino aportar ideas a la comunidad ?
¿ Puedes decirme qué cosa he hecho mal y no debería haber hecho que merece ser llamado "criticar" ?
Recias palabras las tuyas para tan poca cosa.
hmpaquito
 
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby colthop » Thu Jun 26, 2014 10:17 am

Hola que tal:

Tienes toda la razón.

un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby goosfancito » Thu Jun 26, 2014 10:48 am

jua jua.

che. no pregunté nada. solo puse la función que hice.

saludos a todos.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby joseluisysturiz » Fri Jun 27, 2014 2:52 am

goosfancito wrote:jua jua.

che. no pregunté nada. solo puse la función que hice.

saludos a todos.

jajajaja...todos matandose y dandose de puños y goosfandito parado en una esquina viendo...ya que no pregunto nada...jajjajaj...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: mi funcion. dada una fecha devolver el rango de la semana

Postby goosfancito » Fri Jun 27, 2014 10:15 am

SEEE y no sabes como miraba jaja.

saludos!
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

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