共通関数

[C#共通関数] DateTime型の月の差分を整数で取得するFunction

DateTime型の月の差分を整数で取得するFunctionです。

サンプルFunction

例)DateTime型の月の差分を整数で取得するFunction


/// <summary>
/// DateTime型の月の差分を整数で取得するFunction
/// </summary>
/// <param name="dt1">日付From</param>
/// <param name="dt2">日付To</param>
/// <returns>月数の差分</returns>
public static int getMonthDiff(DateTime dt1, DateTime dt2)
{
  var yDiff = (dt2.Year - dt1.Year) * 12;
  var mDiff = (dt2.Month - dt1.Month);

  return yDiff + mDiff; 
}

実行例

結果はint型で返ります。


// 例1
var dtFrom = new DateTime(2022, 1, 4);
var dtTo = new DateTime(2022, 3, 31);
int m = getMonthDiff(dtFrom, dtTo);
→ 2 //3月 - 1月で2になります

// 例2
var dtFrom = new DateTime(2021, 12, 4);
var dtTo = new DateTime(2022, 3, 31);
int m = getMonthDiff(dtFrom, dtTo);
→ 3 //年を跨いでもOKです。

// 例3
var dtFrom = new DateTime(2022, 3, 4);
var dtTo = new DateTime(2022, 3, 31);
int m = getMonthDiff(dtFrom, dtTo);
→ 0 //同じ月なら0になります。

// 例4
var dtFrom = new DateTime(2022, 3, 31);
var dtTo = new DateTime(2022, 1, 4);
int m = getMonthDiff(dtFrom, dtTo);
→ -2 //To < From の場合はマイナス値になります。

備考

  • 年、月のみで判定するため、日付は全く考慮しません。
  • 年またぎ、FromTo逆転も対応しています。

-共通関数
-