FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour mi funcion. dada una fecha devolver el rango de la semana
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
mi funcion. dada una fecha devolver el rango de la semana
Posted: Wed Jun 25, 2014 03:42 PM
Necesitaba que me devuelva la fecha comprendida entre el LUNES y VIERNES inclusive de una fecha dada.
Code (fw): Select all Collapse
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/
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 02: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!
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 04: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
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 08: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.
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 08: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.

Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 08: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 (fw): Select all Collapse
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.
Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 08: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.
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 09: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

Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 09: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.
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Thu Jun 26, 2014 09: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.

Posts: 505
Joined: Sat Apr 22, 2006 09:09 AM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: 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.
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: 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/
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: Fri Jun 27, 2014 02: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... :-)
Dios no está muerto...



Gracias a mi Dios ante todo!
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: mi funcion. dada una fecha devolver el rango de la semana
Posted: 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/

Continue the discussion