Question:
For example , If I run the script on 11/1/2019 or any other day in November I want the date to be change like below.
1 2 3 4 5 6 7 |
$CURRENTDATE=GET-DATE -Format "MM/dd/yyyy" $FIRSTDAYOFMONTH=GET-DATE $CURRENTDATE -Day 1 $LASTDAYOFMONTH=GET-DATE $FIRSTDAYOFMONTH.AddMonths(1).AddSeconds(-1) $FIRSTDAYOFMONTH $LASTDAYOFMONTH |
Output :
1 2 3 |
Friday, November 1, 2019 12:00:00 AM Saturday, November 30, 2019 11:59:59 PM |
My desired output :
1 2 3 4 |
10/01/2019 00:00:00 10/31/2019 23:59:59 |
Answer:
Use the .net AddMonths() method on your current date object to go back (or forward in time).
And do the date formatting after you do the date math.
1 2 3 4 5 6 7 8 |
$CURRENTDATE=GET-DATE -Hour 0 -Minute 0 -Second 0 $MonthAgo = $CURRENTDATE.AddMonths(-1) $FIRSTDAYOFMONTH=GET-DATE $MonthAgo -Day 1 $LASTDAYOFMONTH=GET-DATE $FIRSTDAYOFMONTH.AddMonths(1).AddSeconds(-1) $FIRSTDAYOFMONTH.ToString("MM/dd/yyyy HH:mm:ss") $LASTDAYOFMONTH.ToString("MM/dd/yyyy HH:mm:ss") |
Output:
1 2 3 |
10/01/2019 00:00:00 10/31/2019 23:59:59 |