PowerShell(日付時刻の計算)

アニメ『デート・ア・ライブ』
ハーレムアニメの楽しみ方が分かってから、視聴できるジャンルが広がってさらにアニメ人生を楽しめるようになりました。数年前までは、ほぼ洋画にはまってた気がしますが、私もすでに立派なアニオタです。

デートっていう単語は、日付の意味もありますね。「日付の書式をdateコマンドで更新する」で調べたとき、時日って意味も含んでいることを知りましたが、PowerShellのGet-Dateコマンドでも時刻までわかるようになっています。ということで、今回は、Get-Dateを使います。

現在の日付時刻を取得する

PS C:\Users\takk> get-date

2017年8月18日 19:48:03


Get-DateのAddMonthsメソッドで、日付の加算ができます。

PS C:\Users\takk> (get-date).addMonths(1)

2017年9月18日 19:48:25


PS C:\Users\takk> 

一カ月後の9月18日になってはいますが、さきほどは19:48:03だったのに、
今回は、19:48:25になっています。時間は刻々と過ぎていきますから仕方ありませんね。
一度変数に格納してからメソッドを使ってみましょう。

PS C:\Users\takk> $a=get-date
PS C:\Users\takk> $a

2017年8月18日 19:48:42


PS C:\Users\takk> $a.addMonths(1)

2017年9月18日 19:48:42


PS C:\Users\takk>

任意の日付時刻で計算する

現在の日付時刻ではなく、自由に決めたい場合は、Get-Dateの引数に日付や時刻を指定します。
では日付の指定をしてみます。

PS C:\Users\takk> get-date "2010/1/1"

2010年1月1日 0:00:00


PS C:\Users\takk>

次は日付と時刻。

PS C:\Users\takk> get-date "2010/1/1 10:00:00"

2010年1月1日 10:00:00


PS C:\Users\takk>

同じように変数に格納して、日付時刻を計算するメソッドを使うことができます。

PS C:\Users\takk> $a=get-date "2010/1/1 10:00:00"
PS C:\Users\takk> $a.addmonths(3)

2010年4月1日 10:00:00


PS C:\Users\takk>
PS C:\Users\takk> $a.adddays(100)

2010年4月11日 10:00:00


PS C:\Users\takk>

指定した2つの日付時刻の差分を求める

差を求めるのは単純に引き算するだけです。

PS C:\Users\takk> $b=$a.adddays(100)
PS C:\Users\takk> $b

2010年4月11日 10:00:00


PS C:\Users\takk> 

結果はいろんな単位で表示されます。これは結構便利です。

PS C:\Users\takk> $b - $a


Days              : 100
Hours             : 0
Minutes           : 0
Seconds           : 0
Milliseconds      : 0
Ticks             : 86400000000000
TotalDays         : 100
TotalHours        : 2400
TotalMinutes      : 144000
TotalSeconds      : 8640000
TotalMilliseconds : 8640000000



PS C:\Users\takk>

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA