W.J.P.
W.J.P.

Reputation: 86

Convert day of year value to date in Powershell

In Powershell, converting a date into a day of the year value is easy:

$DayOfYear = (Get-Date).DayofYear
Write-Host $DayOfYear
140

Is there a similar way to convert the day of year back into a date (i.e. 140 = 05/20/2013)?

Upvotes: 1

Views: 6484

Answers (4)

Brandon
Brandon

Reputation: 1

Use this method to avoid [datetime] objects and use Powershell syntax only:

$DayOfYear = (Get-Date).DayOfYear
$Today = (Get-Date -Month 1 -Day 1).AddDays($DayOfYear-1)
"$($Today.ToString("MM/dd/yyyy")) is day $DayOfYear of 365"

Output:

10/03/2017 is day 276 of 365

Upvotes: -1

MrKWatkins
MrKWatkins

Reputation: 2658

You could create a DateTime object representing the start of the year, then add the number of days to it, e.g.:

(New-Object System.DateTime 2013,1,1).AddDays(140-1)

Upvotes: 2

Vijaya Pandey
Vijaya Pandey

Reputation: 4282

This might be helpful for you:

$startdate_year = ([datetime]"01/01/$((Get-Date).Year)")
$a = (Get-Date $startdate_year).AddDays(139)
"Date: " + $a.ToShortDateString()

Now you will get the result like this:

Date: 5/20/2013

Upvotes: 1

Frode F.
Frode F.

Reputation: 54891

Try this:

([datetime]"01/01/$((Get-Date).Year)").AddDays(140-1)

20. mai 2013 00:00:00

mai = may in norwegian :-)

Upvotes: 5

Related Questions