俺氏、本を読む

30歳になるまでに本を読んで勉強しようかと。主に啓発、お金についての本を読むつもり。一応プログラマーなのでその辺のことも。あと、せどり(転売)の仕入れ見込み商品をリサーチして仕入先と一緒に投稿します

【C#】月の差を取得する

C#では月の差分を簡単に取得できないみたい。

VBだったらDateDiffを使ってできるのにね。

というわけで、C#でも単純に月差だけを取得する関数を作るとしたらこんな感じでいいのでは?

というサンプル的なもの。

 

関数部分

/// <summary>
/// 2つの日付の月差を求める
/// </summary>
///対象日付1
///対象日付2
/// <returns></returns>
public int MonthDiff(DateTime dTime1, DateTime dTime2)
{
    int iRet = 0;
    DateTime dtFrom = DateTime.MinValue;
    DateTime dtTo = DateTime.MaxValue;
 
    if (dTime1 < dTime2)
    {
        dtFrom = dTime1;
        dtTo = dTime2;
    }
    else
    {
        dtFrom = dTime2;
        dtTo = dTime1;
    }
 
    // 月差計算(年差考慮(差分1年 → 12(ヶ月)加算))
    iRet = (dtTo.Month + (dtTo.Year - dtFrom.Year) * 12) - dtFrom.Month;
 
    return iRet;
}

実行部分

DateTime dTime1 = new DateTime(2010, 7, 15);
DateTime dTime2 = new DateTime(2014, 1, 15);
 
int iMonDiff = MonthDiff(dTime1, dTime2);

特に説明とかは必要ないぐらい単純!!

上の例だと実行結果は「42」

あくまでも考慮するのは年月のみで、日にち部分は何も考慮してないです。