(C#)ある月が、何日まであるかを調べる
作ったもの
例えば2019年2月は28日までありますが、2020年2月は29日まであります。今回はY年M月が何日まであるかを調べる関数を紹介します。
コード
/// <summary> /// その月が何日まであるか /// </summary> /// <param name="year">年</param> /// <param name="month">月</param> /// <returns></returns> static int DaysOfMonth(int year, int month) { DateTime d1 = new DateTime(year, month, 1); DateTime d2 = d1.AddDays(50); return 51 - d2.Day; }
使い方
int d2019_2 = DaysOfMonth(2019, 2); // 2019年2月の日数 int d2020_2 = DaysOfMonth(2020, 2); // 2020年2月の日数
解説
たとえば、
① 2019年2月1日の50日後は、3月23日です。(2月は28日まである)
② 2020年2月1日の50日後は、3月22日です、(2月は29日まである)
③ 2019年4月1日の50日後は、5月21日です。(4月は30日まである)
④ 2019年1月1日の50日後は、2月20日です。(1月は31日まである)
これらの例から、下線部の合計は51であると経験的に分かります。
一般的に、ある月の50日後が、次の月の X日 だとすると、ある月は 51-X日 まであります。