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()メソッドを使えば、月ごとの日数の違いやうるう年の有無を意識することなく、簡単に正確な日数を取得できます。
-
C#のDateTime.AddHours()メソッドの使い方を徹底解説
C#のDateTime.AddHours()メソッドは、指定した時間数を現在のDateTimeインスタンスの値に加算するためのメソッドです。重要なポイントとして、このメソッドは元のDateTimeオブジェクトを変更せず、計算結果を含む新しいDateTimeオブジェクトを返します。基本仕様DateTimeは不変(イミュータブル)な構造体のため、AddHours()を呼び出しても元の値は変わりません。戻り値は加算後の日時を持つ新しいDateTimeです。構文public DateTime AddHours (double hrs);パラメータ hrs には加算する時間数を指定します。負の値を渡すこ
-
C#のDateTime.AddDays()メソッドの使い方を徹底解説!日付に日数を加算する方法
C#のDateTime.AddDays()メソッドは、現在のDateTimeインスタンスの値に指定した日数を加算するためのメソッドです。このメソッドは元のDateTimeオブジェクトを変更するのではなく、計算結果として新しいDateTimeオブジェクトを返します。そのため、戻り値を受け取る変数が必要になる点に注意しましょう。 基本構文 DateTime.AddDays()メソッドの構文は以下のとおりです。 public DateTime AddDays (double days); 引数 days には加算したい日数をdouble型で指定します。負の値を渡すことで、日付を減算(過去の日付に移動