jeudi 5 mars 2015

Récupérer le dernier jour de la semaine du mois en cours en powershell

L'idée est de récupérer le dernier jour de la semaine (donc pas samedi ou dimanche) du mois courant.

Pour se faire, le plus simple, est de prendre le 1er jour du mois suivant, de retirer un jour afin d'obtenir le dernier jour du mois. Si ce jour est dimanche, on enlève 2 jours, si ce jour est samedi on en enlève qu'un. Si ce jour n'est ni samedi, ni dimanche, on le garde

En 2 lignes :

$nextMonthLastDay = (Get-Date -Month ((Get-Date).Month+1) -Day 1).AddDays(-1)
$nextTsDay = if(@{[DayOfWeek]::Sunday=$d.AddDays(-2);[DayOfWeek]::Saturday=$d.AddDays(-1)}[$d.DayOfWeek] -eq $null){$d}