C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDateTime.DaysInMonth()メソッドの使い方を解説

C#のDateTime.DaysInMonth()メソッドは、指定した年月の日数(その月が何日まであるか)を返す静的メソッドです。たとえば、月の値に「1」(1月)を指定すると「31」が返されます。うるう年の判定も自動的に行われるため、2月の日数を求める際にも非常に便利です。

構文

DaysInMonth()メソッドの構文は以下のとおりです。

public static int DaysInMonth (int year, int month);

引数には対象となる「year(年)」と「month(月)」をint型で渡します。戻り値として、その月の日数がint型で返されます。なお、monthに1~12以外の値を指定した場合や、無効なyearを指定した場合は例外がスローされるので注意が必要です。

使用例1:異なる月の日数を取得する

まず、DateTime.DaysInMonth()メソッドを使用して、8月と6月それぞれの日数を取得する例を見てみましょう。

using System;
public class Demo {
    public static void Main() {
        DateTime date1 = new DateTime(2019, 08, 20, 6, 20, 40);
        DateTime date2 = new DateTime(2019, 06, 20, 6, 20, 40);
        Console.WriteLine("DateTime 1 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date1);
        Console.WriteLine("Days in DateTime 1 month = "+DateTime.DaysInMonth(2019, 08));
        Console.WriteLine("\nDateTime 2 = {0:dd} {0:y}, {0:hh}:{0:mm}:{0:ss} ", date2);
        Console.WriteLine("Days in DateTime 2 month = "+DateTime.DaysInMonth(2019, 06));
        int res = date1.CompareTo(date2);
        // date1の方がdate2より後の日付なので >0 が返る
        Console.WriteLine("\nReturn Value (comparison) = "+res);
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

DateTime 1 = 20 August 2019, 06:20:40
Days in DateTime 1 month = 31
DateTime 2 = 20 June 2019, 06:20:40
Days in DateTime 2 month = 30
Return Value (comparison) = 1

このように、8月は31日、6月は30日として正しく日数が返されていることがわかります。

使用例2:うるう年の2月の日数を取得する

次に、平年(2019年)とうるう年(2016年)の2月の日数を比較する例を見てみましょう。DaysInMonth()メソッドはうるう年を自動的に考慮してくれるため、カレンダーの計算などで重宝します。

using System;
public class Demo {
    public static void Main(){
        int year1 = 2019, year2 = 2016;
        int FebMonth = 2;
        Console.WriteLine("Days in 2019, Feb month = "+DateTime.DaysInMonth(year1, FebMonth));
        Console.WriteLine("Days in 2016, Feb month = "+DateTime.DaysInMonth(year2, FebMonth));
    }
}

出力結果

実行すると、以下の出力が得られます。

Days in 2019, Feb month = 28
Days in 2016, Feb month = 29

平年の2019年2月は28日、うるう年の2016年2月は29日として返されています。このように、DateTime.DaysInMonth()メソッドを使えば、月ごとの日数の違いやうるう年の有無を意識することなく、簡単に正確な日数を取得できます。

  1. C#のDateTime.AddHours()メソッドの使い方を徹底解説

    C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ

  2. C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法

    C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動