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ón | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
BuildDate | (año, mes, día) | Fecha | Monta una fecha desde sus tres componentes. |
BuildDateTime | (año, mes, día, hora, minutos) | Fecha y hora | Monta una fecha y hora desde sus componentes. |
BuildTime | (hora, minutos, segundos) | Hora | Monta una hora desde sus componentes. |
AddTimeToDate | (fecha, tiempo) | Fecha y hora | Combina una fecha con un valor de hora. |
AddDetailedTimeToDate | (fecha, horas, minutos, segundos) | Fecha y hora | Combina 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:00Extraer componentes
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Date_FromDatetime | (fechaYHora) | Fecha | Parte de fecha de un valor con hora. |
DalteLocal_FromDatetime | (fechaYHora) | Fecha | Parte de fecha en hora local. |
Time | (fechaYHora) | Hora | Parte de hora de un valor con fecha. |
Year | (fecha) | Entero | Año de la fecha. |
Month | (fecha) | Entero | Número de mes (1-12). |
Day | (fecha) | Entero | Día del mes. |
Hour | (hora) | Entero | Hora de un valor de tipo Hora. |
Minute | (hora) | Entero | Minutos 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ón | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Date_AddDays / DateTime_AddDays | (fecha, días) | Fecha · Fecha y hora | Suma días. |
Date_AddMonths / DateTime_AddMonths | (fecha, meses) | Fecha · Fecha y hora | Suma meses. |
Date_AddYears / DateTime_AddYears | (fecha, años) | Fecha · Fecha y hora | Suma años. |
DateTime_AddHours / Time_AddHours | (valor, horas) | Fecha y hora · Hora | Suma horas; un valor decimal se redondea a entero. |
DateTime_AddMinutes / Time_AddMinutes | (valor, minutos) | Fecha y hora · Hora | Suma minutos; admite decimales. |
Date_SubtractDays / DateTime_SubtractDays | (fecha, días) | Fecha · Fecha y hora | Resta días. |
Date_SubtractMonths / DateTime_SubtractMonths | (fecha, meses) | Fecha · Fecha y hora | Resta meses. |
Date_SubtractYears / DateTime_SubtractYears | (fecha, años) | Fecha · Fecha y hora | Resta años. |
DateTime_SubtractHours / Time_SubtractHours | (valor, horas) | Fecha y hora · Hora | Resta horas. |
DateTime_SubtractMinutes / Time_SubtractMinutes | (valor, minutos) | Fecha y hora · Hora | Resta 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ón | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Date_GoToDay / DateTime_GoToDay | (valor, nuevoDía) | Fecha · Fecha y hora | Cambia el día; si el mes no llega, salta al mes siguiente. |
Date_GoToMonth / DateTime_GoToMonth | (valor, nuevoMes) | Fecha · Fecha y hora | Cambia el mes. |
Date_GoToYear / DateTime_GoToYear | (valor, nuevoAño) | Fecha · Fecha y hora | Cambia el año. |
DateTime_GoToHour / Time_GoToHour | (valor, nuevaHora) | Fecha y hora · Hora | Cambia la hora. |
DateTime_GoToMinutes / Time_GoToMinutes | (valor, nuevosMinutos) | Fecha y hora · Hora | Cambia los minutos. |
DateTime_GoToSeconds / Time_GoToSeconds | (valor, nuevosSegundos) | Fecha y hora · Hora | Cambia los segundos. |
DateTime_GoToDate | (fechaYHora, fecha) | Fecha y hora | Sustituye la parte de fecha conservando la hora. |
DateTime_GoToTime | (fechaYHora, hora) | Fecha y hora | Sustituye 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ón | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
Date_GoToStartDay / Date_GoToEndDay | (fecha) | Fecha y hora | Inicio o final del día. |
Date_GoToStartWeekMonday / Date_GotoEndSunday | (fecha) | Fecha y hora | Lunes al inicio o domingo al final de la semana. |
Date_GoToStartOfFortnight / Date_GoToEndOfFortnight | (fecha) | Fecha y hora | Inicio o final de la quincena. |
Date_GoToStartOfMonth / Date_GoToEndOfMonth | (fecha) | Fecha y hora | Primer o último día del mes. |
Date_GoToStartOfQuarter / Date_GoToEndQuarter | (fecha) | Fecha y hora | Inicio o final del trimestre. |
Date_GoToStartSemester / Date_GoToEndSemester | (fecha) | Fecha y hora | Inicio o final del semestre. |
Date_GoToStartYear / Date_GoToEndYear | (fecha) | Fecha y hora | 1 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:59Diferencias entre fechas
| Función | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
DaysDifferenceBetweenDates | (primeraFecha, segundaFecha) | Entero | Días entre dos fechas; positivo si la segunda es posterior. |
MinutesDifferenceBetweenDates | (primeraFecha, segundaFecha) | Entero | Minutos entre dos fechas. |
MinutesDifferenceBetweenDatesAndTimes | (primeraFechaYHora, segundaFechaYHora) | Entero | Minutos entre dos valores de fecha y hora. |
MinutesDifferenceBetweenTimes | (primeraHora, segundaHora) | Entero | Minutos entre dos horas. |
SecondsDifferenceBetweenDatesAndTimes | (primeraFechaYHora, segundaFechaYHora) | Entero | Segundos entre dos valores de fecha y hora. |
SecondsDifferenceBetweenTimes | (primeraHora, segundaHora) | Entero | Segundos entre dos horas. |
CalculateAge | (primeraFecha, segundaFecha) | Entero | Edad en años entre dos fechas. |
CalculateAge_WithDateTime | (primeraFechaYHora, segundaFechaYHora) | Entero | Edad en años entre dos valores de fecha y hora. |
CalculateSeniorityDate | (fechaAntigüedad, modoAntigüedad) | Fecha | Fecha 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ón | Parámetros | Devuelve | Qué hace |
|---|---|---|---|
DayOfWeek | (fecha) | Entero | Día de la semana: 1=lunes … 7=domingo. |
NameDayOfWeek_FromDate | (fecha) | Texto | Nombre del día de la semana. |
NameDayOfWeek_FromNumber | (díaSemana) | Texto | Nombre del día desde su número (1=lunes … 7=domingo). |
MonthName_FromDate | (fecha) | Texto | Nombre del mes de la fecha. |
MonthName_FromInt | (mes) | Texto | Nombre del mes desde su número (1-12). |
WeekOfMonth | (fecha) | Entero | Semana del mes (1-5). |
Fortnight | (fecha) | Entero | Quincena (1 o 2); el corte es el día 15. |
Bimester | (fecha) | Entero | Bimestre del año (1-6). |
Quarter | (fecha) | Entero | Trimestre del año (1-4). |
Semester | (fecha) | Entero | Semestre del año (1 o 2). |
DaysInMonth_FromDate | (fecha) | Entero | Días que tiene el mes de la fecha. |
DaysInMonth_FromNumber | (año, mes) | Entero | Dí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) | Entero | Cuenta 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ón | Parámetros | Devuelve | Qué 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ón | Parámetros | Devuelve | Qué 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 hora | Comprueba si el valor cae en el intervalo, comparando solo la fecha. |
IntervalStartDate_* | (intervalo) | Según sufijo | Fecha de inicio del intervalo, como Fecha (_Date) o Fecha y hora (_DateTime). |
IntervalEndDate_* | (intervalo) | Según sufijo | Fecha 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.
Funciones de texto
Combinar, buscar, trocear y formatear texto en DinaScript, con diccionarios en memoria, construcción de JSON y validación de NIF.
Funciones de lógica y comparación
Condicionales If y Case, comprobaciones de igualdad, rangos y listas para decidir valores en fórmulas DinaScript sin escribir bloques de código.