jueves, 22 de junio de 2023

Procedimiento para retornar una fecha con un formato específico

En este ejemplo, vamos a crear un Procedimiento donde ingresaremos dos parámetros de entrada y retronaremos un formato de fecha personalizado. El nombre del objeto en cuestión es a elección, por eso a manera de ejemplo lo llamare "FechaDDMMAAAA". 

Los parámetros a utilizar son tres, pero si se prefiere se podría enviar uno solo. 

Rules:

parm(in:&Fecha, in:&Separador, out:&FechaTxt);  

&Fecha es de tipo Date y la propiedad Picture: "99/99/9999"
&Separador de tipo Character(1) *
&FechaTxt es tipo Character(10)

* La variable "&Separador" puede ser: "dd/mm/aaaa", "dd-mm-aaaa", etc. 

Source:

&FechaTxt=PadL(Trim(Str(&Fecha.Day(),2,0)),2,'0')+&Separador+          PadL(Trim(Str(&Fecha.Month(),2,0)),2,'0')+&Separador+          PadL(Trim(Str(&Fecha.Year(),4,0)),4,'0')

De esta forma vamos a obtener el día, mes y año con los método Day(), Month() y Year() lo concatenamos con el Separador que enviamos por parámetros. 

Las funciones utilizadas:

PadL: Permite construir una expresión de carácter a partir de otra, añadiendo N veces, un carácter específico o espacios en blanco a su lado izquierdo.
Str: Convierte una expresión numérica en una cadena.

Como digo siempre se puede mejorar, por ejemplo retornar el Año de dos dígitos, en ese caso deberíamos utilizar la función SubStr() o el método .SubString(). Se podría retonar la Hora y los Minutos con el formato "HHMM", concatenados a la variable &FechaTxt, solo restaría modificar la propiedad "Length" de la misma. Cualquier crítica es bienvenida siempre que sea constructiva.

No hay comentarios:

Publicar un comentario

Qué es un Queue!? ... en Clarion

Publicado por  EMoreno  el 11/01/2006 - LWP Hola que tal. Una QUEUE es una estructura en memoria. Puede ser de un campo hasta "n...