分かりやすく、使いやすく。

2個の日付の差の日数を計算する方法

スポンサーリンク

PowerShell では、 2 つの DateTime を引き算することで、差の日数を計算することができます。 DateTime 同士を減算すると返される TimeSpan オブジェクトの Days プロパティに差の日数が格納されています。

  1. 2 個の日付の差を計算する
  2. 本日までの経過日数を計算する


2 個の日付の差を計算する

サンプルコードは次の通りです。 2 個の日付が同じ場合は 0 が返されます。

2個の日付が同じ日の場合
1
2
3
4
5
6
7
8
9
10
# 日付を指定して DateTime を生成
$dt1 = [DateTime]::ParseExact("20170101","yyyyMMdd", $null);
$dt2 = [DateTime]::ParseExact("20170101","yyyyMMdd", $null);
 
# 2つの日付の差の日数を計算(TimeSpanが返される)
$dt3 = $dt2 - $dt1;
 
# 日数を取得して表示( 0 が出力される。)
Write-Host $dt3.Days;
 
2個の日付が異なる日の場合
1
2
3
4
5
6
7
8
9
# 日付を指定して DateTime を生成
$dt1 = [DateTime]::ParseExact("20170101","yyyyMMdd", $null);
$dt2 = [DateTime]::ParseExact("20170102","yyyyMMdd", $null);
 
# 2つの日付の差の日数を計算(TimeSpanが返される)
$dt3 = $dt2 - $dt1;
 
# 日数を取得して表示( 1 が出力される。)
Write-Host $dt3.Days; 
2個の日付が異なる日の場合
1
2
3
4
5
6
7
8
9
# 日付を指定して DateTime を生成
$dt1 = [DateTime]::ParseExact("20170101","yyyyMMdd", $null);
$dt2 = [DateTime]::ParseExact("20170131","yyyyMMdd", $null);
 
# 2つの日付の差の日数を計算(TimeSpanが返される)
$dt3 = $dt2 - $dt1;
 
# 日数を取得して表示( 30 が出力される。)
Write-Host $dt3.Days; 

本日までの経過日数を計算する

Get-Date コマンドレットを引数無しで使用すると当日の DateTime を取得することができます。これを使用して本日までの経過日数を計算するサンプルコードは次の通りです。

PowerShell(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
# 過去日付を指定して DateTime を生成
$past = [DateTime]::ParseExact("20170101","yyyyMMdd", $null);
$today = Get-Date;
 
# 本日までの経過日数を計算(TimeSpanが返される)
$timeSpan = $today - $past;
 
# 経過日数を出力
Write-Host $timeSpan.Days; 
スポンサーリンク
スポンサーリンク