Adefesios en RPG
APIS
Aplicaciones multi-idioma
Apuntadores
Archivos
as400
AS400 Para Principiantes
Base de Datos
Best practices
Better Performance
Botones en RPG
Calidad Profesional
CLP
Colas de Datos
Comandos PC
Cursos
DEBUG en RPG
Desarrollo de Software
Divertidos
EDI
EDI X12
Edward de Bono
el arte de la guerra
FAQS
Fechas en RPG
FRAUDE
FTP
Gerencia de Sistemas
Grupos de activacion
Herramientas Gerenciales
ILE
ilerpg
indicadores
Iseries
JSON
Lista de Códigos de Error
Master Mind
Mejorando el performance
Mejores Prácticas en RPG
micros
Migración
modulos
Monitoreo de Errores
Mouse
OCCUR
pantalla verde
Pantallas
Peores Practicas
Performance
podcast
pointers
Procesos
Programación CL
Ratón
rpg
RPG-FREE
RPGLE
Seguridad
Servidores
Sesion 1 fundamentos de internet
SEU
Sockets
SQL
SQLRPG
Subfiles
subprocedures
Sun Tzu
Tarjetas de Crédito
Tiempos de Respuesta
Tips en RPG
Transfer Control
Triggers
Utilidades
Ventanas moviles
Versiones
videos
Bienvenidos a Iseries Venezuela
Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.
The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.
The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.
Tuesday, October 27, 2009
Trabajar con Fechas en RPG
Aunque es muy cómodo permanecer en el campo de lo conocido, es importante en el mundo de la tecnología incorporar herramientas, codigos y mecanismos mas actualizados para desarrollar programas. Todavía se encuentran programas que para validar fechas recurren a aquellos famosos arreglos contenidos al final del programa
donde se definía cual mes del año tiene 28,29 30 o 31 dias. Tambien vemos aquel famoso operador mvr utilizado para saber si un año es o no bisiesto. Con rpg 400 y rpg free, existen nuevas funciones proporcionadas por el sistema operativo que ahorran tiempo de programación y lo mas importante: tiempo de respuesta.
Por ejemplo para saber si una fecha es correcta o incorrecta puedes recurrir a la
función test. Declara previamente la fecha que quieres evaluar y si la fecha es erronea el sistema operativo te devuelve el valor de %error en true (verdadero).
Para evaluar Fecnac. (fecha de nacimiento)
d ds
d Fecnac 1 8 0
d Ano 1 4 0
d Mes 5 6 0
d dia 7 8 0
test(de) *iso Fecnac;
if %error;
enviar mensaje al usuario
endif;
………………………………………………………
En el siguiente ejemplo la función %diff nos da la diferencia de en dias
hemos declarado las fechas julianas pero pueden ser declaradas en formato
*iso u otro que resulte cómodo. En el manual de Rpg Reference pueden ver mas detalles
del formato de fechas
dfecha1 s d datfmt(*jul)
dfeccha2 s d datfmt(*jul)
dias = %diff(fecha1:fecha2:*days);
En la variable dias tenemos la diferencia en dias de ambas fechas,
si queremos la diferencia en meses colocamos en el tercer parámetro
de %diff *months
…………………………………………………
Por último, pero no menos importante, podemos realizar operaciones con fechas con las funciones subdur y adddur.
d fechahoy s d datfmt(*eur)
d fechapago s d datfmt(*eur)
d fechafinal s d datfmt(*eur)
d dias s 5 0
fechahoy subdur 3:*m fechafinal
fechahoy subdur fechapago dias :*d
En la primera instrucción restamos 3 meses a la fecha de hoy y obtenemos una fecha resultante.
En la segunda instrucciñon restamos dos fecha y obtenemos el resultado en terminos de dias.
La función Adddur es similar pero en lugar de restar suma los tiempos o fechas
que le indiquemos.
Estas funciones son muy importantes para el cálculo de fechas de vencimientos de pago, intereses, terminos de contratos, entregas de pedidos y miles de transacciones comerciales que se definen en costo y ganancia por el tiempo transcurrido. Ya no se hace necesario desarrollar un programa o diseñar un procedimiento que se encargue de devolvernos el resultado de la operación que requerimos ejecutar con las fechas.
Continuamente se realizan avances en el RPG es nuestro deber mantenernos actualizados.
Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.
Autor: Ing. Liliana Suárez
Labels:
Tips en RPG
Subscribe to:
Post Comments (Atom)
3 comments:
Muy buen post, yo le agregaría algo sobre la función %date() para obtener la fecha actual, y las funciones %days, %months, %years como alternativa a adddur/subdur.
Debo decir que me ha sorprendido encontrar tu blog, muy poco usual en castellano. Animo!
lo de las fechas esta claro..
tengo que hacer lo siguiente ..
base de datos referencial, dos campos tipo hora...
hora1 (hora de la tansaccion) hora2(tiempo de espera permitido)
que debe pasar.. que sumando hora1+hora2= hora3, esta hora3 debo compararla con la hora actual, y si ya la hora actual es mayor a esa hora3 debe realizar un proceso, de lo contrario debe seguir esperando... no consigo la forma.. podrias orientarme al respecto?
Buen dia,
Quisiera saber si alguno de ustedes sabe como campturar la cantidad de dias que tiene un determinado mes?
Saludos..
Post a Comment