C#ではDateTime構造体を使って日付や時間を管理できます。
DateTimeでは、2つの日付の期間が何日間なのかや指定の日付から何時間経過しているかといった計算が簡単に
行えます。
DateTimeのマイナス演算子とTimeSpan構造体
DateTimeのマイナス演算子を使うと、2つの日付の間の期間を取得することができます。
演算結果はDateSpan構造体として帰ります。
// 指定日時をセット 2023/1/2 03:04:05 DateTime dt1 = new DateTime(2023, 1, 2, 3, 4, 5); // 現在の日時 DateTime dt2 = DateTime.Now; // 引き算 TimeSpan ts = dt2 - dt1; // 期間の日,時間,分,秒,ミリ秒をそれぞれ取得する Console.WriteLine(ts.Days); Console.WriteLine(ts.Hours); Console.WriteLine(ts.Minutes); Console.WriteLine(ts.Seconds); Console.WriteLine(ts.Milliseconds); // 期間を日単位(整数部と小数部から成る日数)で取得する Console.WriteLine(ts.TotalDays); // 期間を時間単位(整数部と小数部から成る時間数)で取得する Console.WriteLine(ts.TotalHours); // 期間を分単位(整数部と小数部から成る分数)で取得する Console.WriteLine(ts.TotalMinutes); // 期間を秒単位(整数部と小数部から成る秒数)で取得する Console.WriteLine(ts.TotalSeconds); // 期間をミリ秒単位(整数部と小数部から成るミリ秒数)で取得する Console.WriteLine(ts.TotalMilliseconds);
8行目で引き算を行って期間をTimeSpan型で取得しています。
TimeSpan型は、期間の日,時間,分,秒,ミリ秒をそれぞれ取得することもできるし、時間単位や秒単位で取得することも可能です。
関連記事
- C#の値型と参照型の違い
- C#のコンストラクタでオーバーロード
- C#のコンストラクタの継承
- C#のジェネリックを使おう
- C#のデリゲート (delegate) って何?
- C#のデリゲートお手軽にする匿名メソッド
- C#のラムダ式【=>】って何?
- C#で基底クラスのメソッドを置き換えるオーバーライド
- C#でキャストとas演算子を使いこなす
- C#で型を判別するtypeofとis演算子
- C#の値型でもnullを扱えるようにするNullable
- C#のリソース解放にはIDisposableとusingを使おう
- C#のStringとstring、Int32とint 違いは・・・ない!
- C#でasync/awaitを使った非同期処理
- C#で文字列を指定の区切り文字で分割
- C#のstring.Formatで桁数や書式を指定する
- C#の配列やListをソートする
- C#の配列やListを検索する (Find,FindAll,FindIndex)
- C#の配列やListを高速に検索する (BinarySearch)
- C#の配列の中に指定の要素が存在するかを調べる(LINQ Contains)
- C#の配列の中に条件を満たす要素が存在するかを調べる(LINQ Any)
- C#の配列から条件に合う要素を抽出する(LINQ Where)
- C#の配列で要素毎の処理結果を得る(LINQ Select)
- C#の配列を並び替える(LINQ OrderBy,ThenBy)
- C#の配列をグループ毎に処理する(LINQ GroupBy)
- C#の配列を内部結合(INNER JOIN)する(LINQ Join)
- C#の配列から最初の要素を取り出す(LINQ First,FirstOrDefault)
- C#の配列の重複要素を削除する(LINQ Distinct)
- C#でフォルダ内のファイル名一覧を取得する
- C#でテキストファイルを読み込む
- C#でテキストファイルに書き込む
- C#でバイナリファイルを読み込む
- C#でバイナリファイルに書き込む
- C#で文字列を日付型(DateTime)へ変換する
- C#で2つの日付型(DateTime)の期間を取得する
コメントをお書きください