En este articulo miramos como extraer el número de días o de horas, la diferencia entre dos fechas Power Automate, también el método para que excluya los fines de Semana y festivos.

La diferencia entre dos fechas en Power Automate se puede calcular de diferentes maneras, dependiendo de las necesidades y requisitos. La diferencia se calcula en unidades tales como días, horas, minutos o segundos.
Vamos a ver los 3 métodos porque también te puede interesar excluir los fines de semana y festivos.
Diferencia de días u horas brutos | Método 1
Este es el método más clásico y sencillo para extraer los días u horas entre 2 fechas de Power Automate.
La expresión es la siguiente para dias:
div(sub(ticks('2023-12-11'),ticks('2023-12-01')),864000000000)
El resultado nos devolvería 10.
Recuerda modificar lo resaltado en amarillo por tus columnas, ejemplo con columnas:
div(sub(ticks(outputs('Get_item')?['body/Fecha2']),ticks(outputs('Get_item')?['body/Fecha1'])),864000000000)

Numero de hora entre fechas
Es el mismo método que el de arriba, pero cambias el número del final:
div(sub(ticks('2023-12-11'),ticks('2023-12-01')),36000000000)
El resultado que devuelve es 168.
Diferencia de días excluyendo fin de semana | Método 2
Tal vez te interesa excluya sábado y domingo y no realice el conteo, es posible, aunque hay que agregar más pasos, también advertirte que este método solo extrae el número de días y no horas.
Vamos a ponernos el caso que el cálculo de días lo realizamos al estar rellanado la columna ‘Fecha Aprobacion’ cuando se modifica el elemento de SharePoint.

Resultado:

Flujo Power Automate excluyendo fines de semana
Inicio flujo
Hay un proceso de aprobación entonces lo primer es iniciar el flujo automático cuando se modifica un elemento.

Adicionalmente en la Configuración en el disparador vamos a añadir la siguiente fórmula para que evitar que se lance si se modifica y la columna no ha sido rellenada.
@not(equals(triggerOutputs()?['body/FechaAprobacion'],null))
Nota:
- Cambia lo resaltado en amarillo por el nombre de tu columna fecha en SharePoint.
Aun así no nos garantiza que se lance solo cuando se modifique esa columna porque puede estar rellena y modificar otro parámetro y se volverá a recalcular, si no queremos que esto pase tenemos que agregar la siguiente opción.
Las siguientes acciones hace que el flujo continue si la columna ‘Fecha Aprobación’ se modificó y si no se ha modificado termina el flujo sin hacer ningún calculo.

Nota: Este paso solo hazlo si hay posibilidad de que sigan modificando otros parámetros una vez insertada las fechas.
Cálculos de días en el flujo
Ahora volvemos a hacer lo que hicimos en el método 1 el cálculo de días en bruto en un compose por ejemplo.
div(sub(ticks(triggerOutputs()?['body/FechaAprobacion']),ticks(triggerOutputs()?['body/FechaSolicitado'])),864000000000)
Y Ahora lo que vamos a realizar para excluir los fines de semana es lo siguiente:
Final del flujo
Ya hemos terminado los cálculos para extraer el número de días sin contar los fines de semana podemos ver el resultado en un ‘Compose’ (Redactar en español).
length(body('Filter_array'))

Después podremos usar ‘Update item’ (Actualizar elemento en español), para actualizarlo en nuestra columna de SharePoint.
Notas:
- La expresión lo puedes usar directamente en el Update item y ahorrarte la acción anterior.
- Puedes mejor actualizar elemento de la siguiente forma para solo actualizar una columna.
Diferencia de días excluyendo festivos | Método 3
Si te interesa excluir festivos estas de enhorabuena porque es compatible con el método 2 o hacerlo solo con festivos. La diferencia es que usaremos de apoyo una lista de SharePoint para almacenar todos estos festivos a diferencia de los fines de semana que lo procesábamos todo dentro del flujo.
Crear Lista de festivos
Lo primero es crearnos una lista de nuestros festivos con 2 columnas (Titulo y una de fecha nos sirve), en este ejemplo uso 2 días de festivos, pero puedes añadir todos los que quieras.

Calculo para no contar festivos
Ahora vamos a proceder a no contar los festivos que tengamos insertado en nuestra lista puedes continuar con el método 2 de excluir los fines de semana que es como lo haremos.
La explicación tiene un poco de complejidad, pero es sencillo en el fondo, prefiero contártelo en un video de 7 minutos:


