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逆転も対応しています。