Afficher les jours de la semaine en cours

Par Loïc Cimon, le 28 novembre 2021


Afficher les jours de la semaine en cours est un besoin qui revient souvent dans mes projets. Cela nécessite certains calculs qui impliquent des formules pas ou peu connues.

Premier jour de la semaine

La première étape est de récupérer le premier jour de la semaine.

Set(gblStartDate, Today()-(Weekday(Today(), StartOfWeek.MondayZero))); 
  • On récupère le numéro du jour de la semaine avec la formule Weekday en précisant que la semaine commence par lundi (chiffre 0).
  • On soustrait ce numéro à la date d’aujourd’hui.
  • On stocke le résultat dans une variable appelée gblStartDate.

Variation
Dans cet exemple, on se base sur la date du jour. Cela fonctionne également avec toute autre date. Pour ce faire, remplacez la formule Today() par la date voulue.

Les jours suivants

Une fois, le premier jour de la semaine identifié, il reste à calculer les suivants de la manière suivante :

ClearCollect(colWeekDays, ForAll(Sequence(5, 0), DateAdd(gblStartDate, ThisRecord.Value, "Days"))) 
  • La formule Sequence pour générer une suite de 5 chiffres en commençant par 0.
  • On boucle sur ces chiffres avec la formule ForAll.
  • A chaque itération, un jour supplémentaire est ajouté à la date de début de la semaine.
  • On stocke le tout dans une collection appelée colWeekDays

Variation
Dans cet exemple, on génère les jours ouvrés uniquement. Pour la semaine entière, remplacé 5 par 7 dans le formule Sequence.

On obtient donc une collection avec les 5 jours travaillés de la semaine en cours prête à être utilisée dans une galerie par exemple, selon vos besoins.

Example d'utilisation des formules
comments powered by Disqus