Esta documentación está en fase de desarrollo y puede contener errores.

Funciones de fecha y hora

Construir y descomponer fechas, sumar periodos, saltar a inicios y finales de mes o año, calcular diferencias, edades y rangos dinámicos en DinaScript.

Funciones del espacio F. para trabajar con fechas, horas y periodos: montar y descomponer valores, desplazarlos en el tiempo, medir la distancia entre dos instantes y compararlos con el momento actual. Las convenciones comunes (tipos, sufijos, contextos) están en el índice de funciones.

Las funciones de «Sumar y restar» y las GoTo no ejecutan en fórmulas de algoritmo; el resto de la página sí, salvo las excepciones que marca cada sección.

Construir fechas y horas

FunciónParámetrosDevuelveQué hace
BuildDate(año, mes, día)FechaMonta una fecha desde sus tres componentes.
BuildDateTime(año, mes, día, hora, minutos)Fecha y horaMonta una fecha y hora desde sus componentes.
BuildTime(hora, minutos, segundos)HoraMonta una hora desde sus componentes.
AddTimeToDate(fecha, tiempo)Fecha y horaCombina una fecha con un valor de hora.
AddDetailedTimeToDate(fecha, horas, minutos, segundos)Fecha y horaCombina una fecha con horas, minutos y segundos sueltos.
@ Fecha del formulario con hora fija
v.cita = F.AddTimeToDate(v.fechaVisita, F.BuildTime(9, 30, 0))
@ cita vale la fecha de la visita a las 9:30:00

Extraer componentes

FunciónParámetrosDevuelveQué hace
Date_FromDatetime(fechaYHora)FechaParte de fecha de un valor con hora.
DalteLocal_FromDatetime(fechaYHora)FechaParte de fecha en hora local.
Time(fechaYHora)HoraParte de hora de un valor con fecha.
Year(fecha)EnteroAño de la fecha.
Month(fecha)EnteroNúmero de mes (1-12).
Day(fecha)EnteroDía del mes.
Hour(hora)EnteroHora de un valor de tipo Hora.
Minute(hora)EnteroMinutos de un valor de tipo Hora.

Todas valen en fórmulas de algoritmo salvo DalteLocal_FromDatetime.

Sumar y restar

Cada función devuelve el mismo tipo que recibe: Date_ una Fecha, DateTime_ una Fecha y hora, Time_ una Hora.

FunciónParámetrosDevuelveQué hace
Date_AddDays / DateTime_AddDays(fecha, días)Fecha · Fecha y horaSuma días.
Date_AddMonths / DateTime_AddMonths(fecha, meses)Fecha · Fecha y horaSuma meses.
Date_AddYears / DateTime_AddYears(fecha, años)Fecha · Fecha y horaSuma años.
DateTime_AddHours / Time_AddHours(valor, horas)Fecha y hora · HoraSuma horas; un valor decimal se redondea a entero.
DateTime_AddMinutes / Time_AddMinutes(valor, minutos)Fecha y hora · HoraSuma minutos; admite decimales.
Date_SubtractDays / DateTime_SubtractDays(fecha, días)Fecha · Fecha y horaResta días.
Date_SubtractMonths / DateTime_SubtractMonths(fecha, meses)Fecha · Fecha y horaResta meses.
Date_SubtractYears / DateTime_SubtractYears(fecha, años)Fecha · Fecha y horaResta años.
DateTime_SubtractHours / Time_SubtractHours(valor, horas)Fecha y hora · HoraResta horas.
DateTime_SubtractMinutes / Time_SubtractMinutes(valor, minutos)Fecha y hora · HoraResta minutos.
@ Vencimiento a 30 días y aviso una semana antes
v.vencimiento = F.Date_AddDays(v.fechaFactura, 30)
v.aviso = F.Date_SubtractDays(v.vencimiento, 7)

Funciones GoTo: cambiar componentes y saltar de periodo

Mueven una fecha a un punto concreto del calendario. Para cambiar un componente suelto:

FunciónParámetrosDevuelveQué hace
Date_GoToDay / DateTime_GoToDay(valor, nuevoDía)Fecha · Fecha y horaCambia el día; si el mes no llega, salta al mes siguiente.
Date_GoToMonth / DateTime_GoToMonth(valor, nuevoMes)Fecha · Fecha y horaCambia el mes.
Date_GoToYear / DateTime_GoToYear(valor, nuevoAño)Fecha · Fecha y horaCambia el año.
DateTime_GoToHour / Time_GoToHour(valor, nuevaHora)Fecha y hora · HoraCambia la hora.
DateTime_GoToMinutes / Time_GoToMinutes(valor, nuevosMinutos)Fecha y hora · HoraCambia los minutos.
DateTime_GoToSeconds / Time_GoToSeconds(valor, nuevosSegundos)Fecha y hora · HoraCambia los segundos.
DateTime_GoToDate(fechaYHora, fecha)Fecha y horaSustituye la parte de fecha conservando la hora.
DateTime_GoToTime(fechaYHora, hora)Fecha y horaSustituye la parte de hora conservando la fecha.

Para saltar al inicio o al final de un periodo. La tabla muestra la variante Date_, que recibe Fecha; cambia el prefijo a DateTime_ para la que recibe Fecha y hora.

FunciónParámetrosDevuelveQué hace
Date_GoToStartDay / Date_GoToEndDay(fecha)Fecha y horaInicio o final del día.
Date_GoToStartWeekMonday / Date_GotoEndSunday(fecha)Fecha y horaLunes al inicio o domingo al final de la semana.
Date_GoToStartOfFortnight / Date_GoToEndOfFortnight(fecha)Fecha y horaInicio o final de la quincena.
Date_GoToStartOfMonth / Date_GoToEndOfMonth(fecha)Fecha y horaPrimer o último día del mes.
Date_GoToStartOfQuarter / Date_GoToEndQuarter(fecha)Fecha y horaInicio o final del trimestre.
Date_GoToStartSemester / Date_GoToEndSemester(fecha)Fecha y horaInicio o final del semestre.
Date_GoToStartYear / Date_GoToEndYear(fecha)Fecha y hora1 de enero o 31 de diciembre del año.

Las variantes Date_ de esta tabla también devuelven Fecha y hora, no Fecha: apuntan a un instante concreto, como las 23:59:59 del último día del periodo.

@ Límites del mes de la fecha del pedido
v.desde = F.Date_GoToStartOfMonth(v.fechaPedido)
v.hasta = F.Date_GoToEndOfMonth(v.fechaPedido)
@ hasta apunta al último día del mes a las 23:59:59

Diferencias entre fechas

FunciónParámetrosDevuelveQué hace
DaysDifferenceBetweenDates(primeraFecha, segundaFecha)EnteroDías entre dos fechas; positivo si la segunda es posterior.
MinutesDifferenceBetweenDates(primeraFecha, segundaFecha)EnteroMinutos entre dos fechas.
MinutesDifferenceBetweenDatesAndTimes(primeraFechaYHora, segundaFechaYHora)EnteroMinutos entre dos valores de fecha y hora.
MinutesDifferenceBetweenTimes(primeraHora, segundaHora)EnteroMinutos entre dos horas.
SecondsDifferenceBetweenDatesAndTimes(primeraFechaYHora, segundaFechaYHora)EnteroSegundos entre dos valores de fecha y hora.
SecondsDifferenceBetweenTimes(primeraHora, segundaHora)EnteroSegundos entre dos horas.
CalculateAge(primeraFecha, segundaFecha)EnteroEdad en años entre dos fechas.
CalculateAge_WithDateTime(primeraFechaYHora, segundaFechaYHora)EnteroEdad en años entre dos valores de fecha y hora.
CalculateSeniorityDate(fechaAntigüedad, modoAntigüedad)FechaFecha de referencia de antigüedad según el modo (inicio de mes, trimestre o año).

Todas valen en fórmulas de algoritmo salvo CalculateSeniorityDate.

Semana y calendario

FunciónParámetrosDevuelveQué hace
DayOfWeek(fecha)EnteroDía de la semana: 1=lunes … 7=domingo.
NameDayOfWeek_FromDate(fecha)TextoNombre del día de la semana.
NameDayOfWeek_FromNumber(díaSemana)TextoNombre del día desde su número (1=lunes … 7=domingo).
MonthName_FromDate(fecha)TextoNombre del mes de la fecha.
MonthName_FromInt(mes)TextoNombre del mes desde su número (1-12).
WeekOfMonth(fecha)EnteroSemana del mes (1-5).
Fortnight(fecha)EnteroQuincena (1 o 2); el corte es el día 15.
Bimester(fecha)EnteroBimestre del año (1-6).
Quarter(fecha)EnteroTrimestre del año (1-4).
Semester(fecha)EnteroSemestre del año (1 o 2).
DaysInMonth_FromDate(fecha)EnteroDías que tiene el mes de la fecha.
DaysInMonth_FromNumber(año, mes)EnteroDías que tiene un mes dado por año y número.
IsLeapYear_FromDate(fecha)Entero (1/0)El año de la fecha es bisiesto.
IsLeapYear_FromNumber(año)Entero (1/0)El año es bisiesto.
IsQuarter(fecha, trimestre)Entero (1/0)La fecha cae en el trimestre indicado.
IsYear(fecha, año)Entero (1/0)La fecha cae en el año indicado.
CountWeeklyDaysInRange(desde, hasta, díaSemana)EnteroCuenta cuántas veces cae un día de la semana entre dos fechas.

Todas valen en fórmulas de algoritmo salvo CountWeeklyDaysInRange.

Eventos respecto al momento actual

Comprueban dónde cae un evento respecto a ahora y devuelven Entero (1/0), listas para usar en condiciones. Cada familia existe en cinco unidades — cambia Days por Hours, Minutes, Months o Years en el nombre — y con sufijo de tipo: _Date y _DateTime para días, meses y años; _Time y _DateTime para horas y minutos. La leyenda de sufijos está en el índice de funciones.

FunciónParámetrosDevuelveQué hace
EventStartedLessThanXDaysAgo_*(valor, intervalo)Entero (1/0)El evento ocurrió hace menos de N días.
EventStartedMoreThanXDaysAgo_*(valor, intervalo)Entero (1/0)El evento ocurrió hace más de N días.
EventStartsInLessThanXDays_*(valor, intervalo)Entero (1/0)El evento llega dentro de los próximos N días.
EventStartsInMoreThanXDays_*(valor, intervalo)Entero (1/0)El evento está a más de N días vista.
EventStartedOrEventStartsInLessThanXDays_*(valor, intervalo)Entero (1/0)El evento ocurrió o llega dentro de un margen de N días.
@ Clasificar clientes por su última compra
¿F.EventStartedMoreThanXMonthsAgo_Date(v.ultimaCompra, 6) = 1 ? v.estado = "Inactivo"
¿F.EventStartedLessThanXDaysAgo_Date(v.ultimaCompra, 30) = 1 ? v.estado = "Activo"

Rangos dinámicos e intervalos

Comprueban valores contra rangos dinámicos e intervalos definidos en tu cuenta, y obtienen sus fechas límite.

FunciónParámetrosDevuelveQué hace
InDynamicRange_*(valor, intervalo)Entero (1/0)El valor cae dentro del rango dinámico. Sufijos _Date y _DateTime.
InRange_DateTime_DateOnly(fechaYHora, intervalo)Fecha y horaComprueba si el valor cae en el intervalo, comparando solo la fecha.
IntervalStartDate_*(intervalo)Según sufijoFecha de inicio del intervalo, como Fecha (_Date) o Fecha y hora (_DateTime).
IntervalEndDate_*(intervalo)Según sufijoFecha de fin del intervalo.
IsInInterval_*(valor, intervaloRápido)Entero (1/0)El valor cae dentro del intervalo rápido indicado. Sufijos _Date y _DateTime.

Todas valen en fórmulas de algoritmo; IsInInterval_* no está disponible en funciones API.


Índice de funcionesAlgoritmosDinaScript

On this page