Les commandes get-date c'est bien... mais les commandes get-date ne permettent pas de faire un calcul précis du nombre de jours travaillés!
Ce petit script vous permettra de savoir le nombre de jours allant du lundi au vendredi et qui ne sont pas des jours féries.
Le principe est simple, il suffit de faire une boucle qui va incrémenter la date actuelle d'un jour, vérifier si ce jour n'est ni un samedi, ni un dimanche ou un jour férié, et si la vérification est ok ajouter 1 au compteur de jours ouvrés.
$today est la variable contenant la date actuelle et $cible la date de fin. $feries est un tableau ou vous rentrez manuellement chacune des dates fériées en respectant bien la syntaxe [datetime]mm/jj pour les dates récurrente (comme le 1e Mai) ou [datetime]mm/jj/aaaa pour les dates non-récurrentes (comme le lundi de Pentecôte, par exemple)
Vous pouvez télécharger le code depuis mon espace git personnel.
$today = Get-Date
$cible = [datetime]"12/16/2016"
$feries = @([datetime]"01/01",[datetime]"05/01",[datetime]"05/08",[datetime]"07/14",[datetime]"08/15",[datetime]"11/1",[datetime]"11/11",[datetime]"12/25")
$feries += @([datetime]"04/21/2014",[datetime]"05/29/2014",[datetime]"06/09/2014",[datetime]"04/06/2015",[datetime]"05/14/2015",[datetime]"05/25/2015")
#ajoutez les jours qui sont fériés en conservant cette syntaxe
$joursouvres = 1
while ($today.ToLongDateString() -ne $cible.ToLongDateString())
{
if (($today.DayOfWeek -ne "Sunday") -and ($today.DayOfWeek -ne "Saturday") -and ($feries.tolongdatestring() -notcontains $today.tolongdatestring()))
{
$joursouvres++
}#fin if
$today = $today.AddDays(1)
}#fin while
Write-Host $joursouvres "jour(s) ouvré(s), aujourd'hui inclus"