PowerShellで日数計算できるんです

ちょっと便利な小技を紹介する「PowerShellでライフハック」。前回は「PowerShellで計算する」でしたが、今回は「PowerShellで日数計算する」です。こんなことまでPowerShellでできてしまうんです。これも前回と同様コマンドプロンプトにはできなかったことです。

「ある日からある日まで何日あるか」は、月や年をまたぐと単純な引き算では求められません。でもPowerShellなら、今回取り上げた「Get-Date」コマンドレットを使えば単純な引き算でOKなのです。

「Get-Date」コマンドレットには「-year」「-month」「-day」(「-date」ではありません。間違えやすいので要注意)「-hour」「-minute」「-second」パラメータがあります。それぞれのパラメータに数値でパラメータ値を与えると現在日時ではなく、指定した日時を表すようにに設定されます(図6)。(これによってPCの内蔵時計を設定するわけではないので、その点は心配ありません)このように「パラメータとパラメータ値」のセットを同時に複数与えることができるコマンドレットもあります。

図6 「Get-Date」コマンドレットで日時を2010年1月1日0時0分0秒に設定したところです。設定された結果が表示されます

しかしすべてのパラメータを指定する必要はありません。現在の日時と変えたいところだけパラメータを指定すれば良いのです。例えば現在が2009年4月24日のとき、2010年4月24日に設定したいのなら「-year」パラメータだけを指定して

「 Get-Date  -year  2010 」

とします(図7) 。

図7 上が「Get-Date」コマンドレットで現在日時を表示したところ。下が年だけを2010年に設定したところです。(注意:コマンドレット実行時点の現在日時に対して設定されるので、上とは秒が違っています)