Muchas veces, por ejemplo al realizar una
agenda donde apuntar
eventos por día, me he encontrado en
Velneo con la siguiente duda:
Pero para eso necesito tener todos los días de todos los años generados?
Afortunadamente en la mayoría de ocasiones la respuesta ha sido
NO.

No es necesaria una
tabla maestra
Años y una
submaestra Días para una agenda.
Lo que suelo hacer es generar
al vuelo, en una
tabla en memoria los registros que necesito mostrar como calendario. Es como las famosas tablas "Dummy" de
Fran, pero para fechas.
Dicha tabla en principio sólo necesita un campo
Código autonumérico y un campo
Fecha. En ella daremos de alta
por proceso las fechas compredidas en el intervalo fecha_desde - fecha_hasta necesarias para la
visualización del periodo de la agenda deseado.
Adicionalmente podemos disponer diversos
campos fórmula alfabética que nos muestren cada fecha
ya formateada según las necesidades.
Veamos algunas posibilidades de fecha formateada en
Velneo.
Supongamos una fecha;
2-01-2008Utilizando la función
fFormatFecha(fecha, szFormato) donde
fecha es el campo o variable fecha que vamos a transformar y
szFormato es la subcadena de formato que vamos a aplicar a esa fecha para darle la forma deseada, podemos obtener una enorme diversidad de formas para la fecha.
Disponemos de los siguientes formateadores:
&d -> Visualiza el día del mes con uno o dos dígitos, según corresponda (1 - 31)
En nuestro caso sería:
2&e -> Visualiza el día del mes siempre con dos dígitos (01 - 31)
En nuestro caso sería:
02&L -> Visualiza, en Español, el día de la semana en texto; Lunes, Martes, ...
En nuestro caso sería:
Miércoles&A -> Visualiza, en Inglés, el día de la semana en texto; Monday, Tuesday, ...
En nuestro caso sería:
Wednesday&l -> (L minúscula). Visualiza, en Español, el día de la semana abreviado a tres letras; Lun, Mar, ...
En nuestro caso sería:
Mie&a -> Visualiza, en Inglés, el día de la semana abreviado a tres letras; Mon, Tue, ...
En nuestro caso sería:
Wed&m -> Visualiza el número del mes con uno o dos dígitos, según corresponda (1 - 12)
En nuestro caso sería:
1&n -> Visualiza el número del mes siempre con dos dígitos (01 - 12)
En nuestro caso sería:
01&K -> Visualiza, en Español, el mes en texto; Enero, Febrero, ...
En nuestro caso sería:
Enero&B -> Visualiza, en Inglés, el mes en texto; January, February, ...
En nuestro caso sería:
January&k -> Visualiza, en Español, el mes en texto abreviado a tres letras; Ene, Feb, ...
En nuestro caso sería:
Ene&b -> Visualiza, en Inglés, el mes en texto abreviado a tres letras; Jan, Feb, ...
En nuestro caso sería:
Jan&j -> Visualiza el día del año de un campo fecha (1 - 366)
En nuestro caso sería:
2&u -> Visualiza el día de la semana en número dentro del rango 1 a 7 siendo 1=Lunes
En nuestro caso sería:
3&w -> Visualiza el número del día de la semana dentro del rango 0 a 6 siendo 0=Domingo
En nuestro caso sería:
3&W -> Visualiza el número de la semana del año dentro del rango 0 a 51
En nuestro caso sería:
1&U -> Visualiza el número de la semana del año dentro del rango 1 a 52
En nuestro caso sería:
1&x -> Formatea la fecha en la forma que el sistema esté configurado
En mi caso sería:
miércoles, 02 de enero de 2008&Y -> Visualiza el año con todos sus dígitos
En nuestro caso sería:
2008&y -> Visualiza el año sin siglo con uno o dos dígitos, según corresponda
En nuestro caso sería:
8&z -> Visualiza el año sin siglo siempre con dos dígitos
En nuestro caso sería:
08Todos estos
formateadores también están disponibles al seleccionar un
campo fecha en el
editor de fórmulas, dentro del apartado
Subcadena de formato (opcional) - Opciones.
Al ser una
subcadena, los formateadores admiten cualquier símbolo que podamos teclear dentro de la cadena.
Así, por ejemplo, podríamos mostrar nuestra fecha
2-01-2008 como
08/01/02, Wed. usando la función siguiente
fFormatFecha(2/01/2008, "&z/&n/&e, &a.")Fácil, como todo en
Velneo.
Ahora veamos algunas
combinaciones de funciones que nos facilitarán mucho la vida a la hora de trabajar con fechas.
En qué
semana del año me encuentro?
fFormatFecha( fHoy(), "&U")En qué
día del año me encuentro?
fFormatFecha( fHoy(), "&j")
Qué día de la semana es el
primer día del mes actual?
fFormatFecha( fFecha( 1 ), "&L")Y el
último día del mes que viene?
fFormatFecha( fFecha( fDiasDelMes( fMes( fHoy() ) + 1, fAño( fHoy() ) ), fMes( fHoy() ) + 1 ), "&L")Y así podríamos seguir complicándolo o simplificándolo, depende de cómo se mire, tanto como deseemos o necesitemos.
Espero que esto ayude a resolver algunas dudas al respecto de las fechas en
Velneo.
Life is Soft!