miércoles, 5 de febrero de 2014

Obtener la fecha en letras con Visual FoxPro: 'Miercoles, 5 de Febrero de 2014'

Hola a todos. Reciban un cordial saludo. A veces, queremos obtener alguna fecha determinada en letras, tal cual la forma: 'Miércoles, 5 de Febrero 2014'. Ésto es muy útil cuando queremos imprimir una validacion del día exacto en que se realiza alguna transacción, como un cheque, un recibo de caja, una factura, un boucher de deposito... o algo parecido.

Para tal fin, mostramos el siguiente código, en el cual el valor de la variable local tdate es la fecha que debe ser pasado como parametro en formato DATE(). Nosotros usamos el dia actual como ejemplo, pero si se requiere adecuarlo como una funcion especifica, basta con pasar el parametro tdate y retornar el valor.

Bien... aca el codigo:

**------------------------------------------
LOCAL tdate, lnday, lnndx, lnMonth, lnDay
**--
LOCAL lcDia, lcMes, lnAño, lcSufijo, lcFecha

tdate = DATE()

**--
lnndx = DAY(tdate)


lnMonth = MONTH(tDate)
lnDay = DOW(tDate)
lcSufijo = " de "
lnAño = YEAR(tdate)

**--Obtenemos el día
DO CASE
    **Domingo
    CASE lnDay = 1  
        lcDia = "Domingo"
    **Lunes
    CASE lnDay = 2
        lcDia = "Lunes"
    **Martes
    CASE lnDay = 3
        lcDia = "Martes"
    **Miercoles
    CASE lnDay = 4
        lcDia = "Miercoles"  
    **Jueves
    CASE lnDay = 5  
        lcDia = "Jueves"  
    **Viernes
    CASE lnDay = 6
        lcDia = "Viernes"  
    **Sábado
    CASE lnDay = 7
        lcDia = "Sábado"      

ENDCASE
**--//

**--Obtenemos el mes
DO CASE
    **Enero
    CASE lnMonth = 1
        lcMes = "Enero"
    **Febrero
    CASE lnMonth = 2
        lcMes = "Febrero"
    **Marzo
    CASE lnMonth = 3
        lcMes = "Marzo"
    **Abril
    CASE lnMonth = 4
        lcMes = "Abril"
    **Mayo
    CASE lnMonth = 5
        lcMes = "Mayo"
    **Junio
    CASE lnMonth = 6
        lcMes = "Junio"
    **Julio
    CASE lnMonth = 7
        lcMes = "Julio"
    **Agosto
    CASE lnMonth = 8
        lcMes = "Agosto"
    **Septiembre
    CASE lnMonth = 9
        lcMes = "Septiembre"
    **Octubre
    CASE lnMonth = 10
        lcMes = "Octubre"
    **Noviembre
    CASE lnMonth = 11
        lcMes = "Noviembre"
    **Diciembre
    CASE lnMonth = 12
        lcMes = "Diciembre"
ENDCASE

**--Armamos la fecha
lcFecha = lcDia + ", " + ALLTRIM(STR(lnndx) + lcSufijo + lcMes + lcSufijo + ALLTRIM(STR(lnAño)))

MESSAGEBOX(lcFecha)
**----------------------------------------------------------------------------------------------


Saludos. Cualquier duda, comentario o aportacion para mejorar es siempre bienvenido. 

Un abrazo! 
Desde Managua, Nicaragua! 
Ravenn :D :D :D