I had to do some SMTP relay troubleshooting and it wasn't obvious how to view…
Finding the Last Friday (or any weekday) of the Month in PowerShell
If there are less than 7 days left in the month, then it’s the last weekday of this type in this month.
function Is-LastWeekDayOfMonth([DateTime] $d) {
return [DateTime]::DaysInMonth($d.Year, $d.Month) - $d.Day -lt 7
}
Similarly, finding the last specific weekday of the month involves finding the last weekday, and the difference between that weekday and the target weekday:
function Get-LastFridayOfMonth([DateTime] $d) {
$lastDay = new-object DateTime($d.Year, $d.Month, [DateTime]::DaysInMonth($d.Year, $d.Month))
$diff = ([int] [DayOfWeek]::Friday) - ([int]
$lastDay.DayOfWeek)
if ($diff -ge 0) {
return $lastDay.AddDays(- (7-$diff))
}
else
{
return $lastDay.AddDays($diff)
}
}
Hi Chinh Do,
I stumbled upon your script today.
I was looking for something like this.
There is just one minor thing about your script.
In your If statement, you should use -gt in stead of -ge to return the correct value.
Much appreciated!
Martijn