2016年12月21日

【PowerShell】TimeSpanオブジェクトを作成する


TimeSpanオブジェクトを作成するには、New-TimeSpanを使用します。

構文
New-TimeSpan [[-Start] <DateTime>] [[-End] <DateTime>]

New-TimeSpan [-Days <Int32>] [-Hours <Int32>] [-Minutes <Int32>] [-Seconds <Int32>]


TimeSpanオブジェクトの作成

PS C:\work> $TimeSpan = New-TimeSpan -Hours 1 -Minutes 15
PS C:\work> (Get-Date) + $TimeSpan

2016年12月21日 22:47:54
この例では、1時間15分のTimeSpanオブジェクトを作成しています。
作成したオブジェクトを使って、現在時刻に対して1時間15分後の時刻を表示しています。


開始と終了を指定してオブジェクトを作成

PS C:\work> New-TimeSpan -Start (Get-Date -Year 2016 -Month 12 -Day 1) -End (Get-Date -year 2017 -Month 1 -Day 1)


Days              : 31
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 0
Ticks             : 26784000000000
TotalDays         : 31
TotalHours        : 744
TotalMinutes      : 44640
TotalSeconds      : 2678400
TotalMilliseconds : 2678400000
この例では、-Startパラメータで開始日を指定し、-Endパラメータで終了日を指定し、TimeSpanオブジェクトを作成しています。


ファイルの更新日からTimeSpanオブジェクトを取得

この例では、test.logが最後に更新されてからの経過時間しています。

パイプラインを使った方法
PS C:\work> dir .\test.log | New-TimeSpan


Days              : 28
Hours             : 4
Minutes           : 14
Seconds           : 12
Milliseconds      : 369
Ticks             : 24344523696573
TotalDays         : 28.1765320562188
TotalHours        : 676.23676934925
TotalMinutes      : 40574.206160955
TotalSeconds      : 2434452.3696573
TotalMilliseconds : 2434452369.6573

-Startパラメータを使った方法
PS C:\work> New-TimeSpan -Start (dir .\test.log).LastWriteTime


Days              : 28
Hours             : 4
Minutes           : 14
Seconds           : 38
Milliseconds      : 506
Ticks             : 24344785067793
TotalDays         : 28.1768345692049
TotalHours        : 676.244029660917
TotalMinutes      : 40574.641779655
TotalSeconds      : 2434478.5067793
TotalMilliseconds : 2434478506.7793



スポンサーリンク