Función fecha legible

HMG en Español

Moderator: Rathinagiri

Post Reply
jparada
Posts: 430
Joined: Fri Jan 23, 2009 5:18 pm

Función fecha legible

Post by jparada »

Hola,

Está función devuelve la fecha en "formato legible", por ejemplo: FechaLegible( date() ) -> 30/May/2018

Code: Select all

function FechaLegible( dfecha )
  //local fecha := "  /  /  "
  local fecha := Ctod( '  /  /  ' )
  local nombre_mes
  local meses := { "Enero", "Febrero", "Marzo", "Abril", "Mayo",  "Junio", ;
                    "Julio", "Agosto", "Septiembre",  "Octubre", "Noviembre", "Diciembre" }

  if ! Empty( dfecha )
    nombre_mes := Iif ( !Empty( dfecha), meses[Month(dfecha)], "" )
    fecha := Alltrim(Str(Day(dfecha)) ) + "/" +  Left(nombre_mes,3) + "/" + Str(Year(dfecha),4)
  endif

return ( fecha )
Alguna idea cómo la puedo simplificar.

Gracias.

Saludos,
Javier
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Función fecha legible

Post by BeGeS »

Hola, Javier.

Te puedes ahorrar el segundo condicional: Iif ! Empty( dfecha)

Basta con el primero. ;)

Pero, sobre todo, no hace falta poner los meses en español si al comienzo del programa indicas estas dos líneas:

REQUEST HB_LANG_ES
HB_LANGSELECT("ES")

Entonces la función quedaría así (ojo, CMonth() en lugar de Month() ) :

Code: Select all

function FechaLegible( dfecha )
local fecha := " / / "

if ! Empty( dfecha )
  fecha := Alltrim( Str(Day(dfecha)) ) + "/" + Left(CMonth(dfecha),3) + "/" + Str(Year(dfecha),4)
endif

return ( fecha ) 
I get by with a little help from my friends
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: Función fecha legible

Post by mustafa »

Hola jparada
Como ha indicado el colega BegeS
Hay que poner:

REQUEST HB_CODEPAGE_ESWIN
HB_SETCODEPAGE("ESWIN")

REQUEST HB_LANG_ES
HB_LANGSELECT("ES")

y tu código un poco modificado sale bien

Code: Select all


function FechaLegible( dfecha )

  local fecha := Ctod( '  /  /  ' )
 
  local diax   :=  hb_oemtoansi(CDOW(date()))
  local meses  :=  hb_oemtoansi(CMONTH(date()))

  if ! Empty( dfecha )
       fecha := Alltrim(Str(Day(dfecha)) ) + "/" + ALLTRIM(meses) + "/" + Str(Year(dfecha),4)
  endif

  MsgInfo( fecha , diax )

return ( fecha )

Saludos
Mustafa
jparada
Posts: 430
Joined: Fri Jan 23, 2009 5:18 pm

Re: Función fecha legible

Post by jparada »

Hola,

Gracias a todos por sus aportes.

Saludos,
Javier
Post Reply