Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】年月日時刻の差を求める

New-TimeSpanコマンドレットを使う。以下は3秒間を挟んで2つのDateTimeオブジェクトを取得し、それを比較した例。個別の値が欲しい場合は、プロパティを指定すればよい。

PS > $dt1 = Get-Date; Start-Sleep 3; $dt2 = Get-Date
PS > New-TimeSpan $dt1 $dt2
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 14
Ticks             : 30144924
TotalDays         : 3.48899583333333E-05
TotalHours        : 0.000837359
TotalMinutes      : 0.05024154
TotalSeconds      : 3.0144924
TotalMilliseconds : 3014.4924
PS > (New-TimeSpan $dt1 $dt2).Seconds
3

New-TimeSpanコマンドレットを使わなくてもDateTimeオブジェクト同士を演算すれば比較をすることができる。この日付時刻を比較した時間間隔を表すオブジェクトは、TimeSpanオブジェクトという。

PS > $dt2 - $dt1
Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 3
Milliseconds      : 14
Ticks             : 30144924
TotalDays         : 3.48899583333333E-05
TotalHours        : 0.000837359
TotalMinutes      : 0.05024154
TotalSeconds      : 3.0144924
TotalMilliseconds : 3014.4924
PS > ($dt2 - $dt1).Seconds
3
PS > $dt1.GetType().FullName
System.DateTime
PS > ($dt2 - $dt1).GetType().FullName
System.TimeSpan