LibreOffice Calc: Nombre de jours commun entre deux plages de dates

Aujourd’hui, je cherchais le moyen d’obtenir le nombre de jours commun entre deux plages de dates dans un chiffrier LibreOffice. Je voulais utiliser seulement des fonctions natives. Malheureusement, il n’y a pas de façon simple d’y arriver. Après un moment, j’ai décidé de lancer ma question à 2$ via Twitter, car à plusieurs on a plus de chance de trouver la solution, n’est-ce pas ? Et bien non !

Par déformation professionnelle, je me suis donc mis à programmer une fonction personnalisée. Il y avait bien longtemps que je n’avais pas fait de script dans un chiffrier. Cette façon de faire m’a permit rapidement d’obtenir un résultat plus que satisfaisant. Je vous partage donc le fruit de mon travail. La fonction est ultra simple, facile à utiliser dans les cellules du chiffrier et réutilisable à souhait. Auriez-vous une façon plus élégante d’obtenir le même résultat ?

Voici le code de la fonction à ajouter aux macros de votre chiffrier.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function periodOverlap( a1, a2, b1, b2 )
	dim nbDays as Integer
 
	IF a1 > b2 OR a2 < b1 THEN
		nbDays = 0
	ELSE
		IF a1 > b1 AND a1 < b2 THEN
			nbDays = b2 - a1
		ELSE
			nbDays = a2 - b1
		END IF
	END IF
 
	periodOverlap = nbDays
End function

Avec en plus un exemple en image au haut de l’article !