Ejemplo:
*--- Español en formato largo y Separador "-"
? DTOCNA({07/10/2000}, "E", "L", "-")
-> 07-OCT-2000
*--- Alemán en formato corto y Separador "/"
? DTOCNA({07/10/2000}, "A", "C", "/")
-> 07/OKT/00
*-----------------------------------------------------------------
* FUNCTION DTOCNA(tdFecha, tcLeng, tcLong, tcSep)
*-----------------------------------------------------------------
* Date TO Caracter No Ambiguo
* PARAMETROS:
* tdFecha: Fecha a convertir. Default = DATE()
* tcLeng:
* [E]spañol [I]nglés [F]rancés [A]lemán
* i[T]aliano [P]ortugués
* tcLong:
* [L]argo: 12 ENE 2000 ó [C]orto: 01 ENE 00
* tcSep:
* Caracter separador del dia-mes-año. Default = " "
* Si tcSep = .NULL. no tiene separador
* RETORNO: Caracter
* USO: ? DTOCNA({01/01/1999}, "I", "C", "-") -> 01-JAN-99
* AUTOR: LMG - 2000/06/15
*-----------------------------------------------------------------
FUNCTION DTOCNA(tdFecha, tcLeng, tcLong, tcSep)
LOCAL lcMes, lnI
IF EMPTY(tdFecha) OR NOT VARTYPE(tdFecha) $ "DT"
tdFecha = DATE()
ENDIF
IF EMPTY(tcLeng) OR NOT UPPER(tcLeng) $ "EIFATP"
tcLeng = "E"
ELSE
tcLeng = UPPER(tcLeng)
ENDIF
IF EMPTY(tcLong) OR NOT UPPER(tcLong) $ "CL"
tcLong = "L"
ELSE
tcLong = UPPER(tcLong)
ENDIF
IF EMPTY(tcSep)
tcSep = " "
ELSE
IF ISNULL(tcSep)
tcSep = ""
ENDIF
ENDIF
lnI = (MONTH(tdFecha)* 3) - 2
DO CASE
CASE tcLeng = "E"
lcMes = SUBS("ENEFEBMARABRMAYJUNJULAGOSETOCTNOVDIC", lnI, 3)
CASE tcLeng = "I"
lcMes = SUBS("JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC", lnI, 3)
CASE tcLeng = "F"
lcMes = SUBS("JANFEVMARAVRMAIJUNJULAOUSEPOCTNOVDEC", lnI, 3)
CASE tcLeng = "A"
lcMes = SUBS("JANFEBMARAPRMAIJUNJULAUGSEPOKTNOVDEZ", lnI, 3)
CASE tcLeng = "T"
lcMes = SUBS("GENFEBMARAPRMAGGIULUGAGOSETOTTNOVDIC", lnI, 3)
CASE tcLeng = "P"
lcMes = SUBS("JANFEVMARABRMAIJUNJULAGOSETOUTNOVDEZ", lnI, 3)
ENDCASE
RETURN TRAN(DAY(tdFecha), "@L 99") + tcSep + lcMes + tcSep + ;
IIF(tcLong = "L", TRAN(YEAR(tdFecha), "@L 9999"), ;
TRAN(YEAR(tdFecha) % 100, "@L 99"))
ENDFUNC
*-----------------------------------------------------------------
Luis María Guayán
No hay comentarios. :
Publicar un comentario
Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.