.NET TIPS 秒数を「hh:mm:ss」形式の文字列にするには?デジタルアドバンテージ 遠藤 孝信2005/07/22 |
|
|
計算などにより得られた秒数を、ユーザーに分かりやすい「hh:mm:ss」の形式の文字列にするには、TimeSpan構造体(System名前空間)のインスタンスを作成し、そのToStringメソッドを呼び出せばよい。TimeSpan構造体は時間間隔を表すためのものである。
TimeSpan構造体には、次のような整数型のパラメータを取るコンストラクタが用意されている。
TimeSpan(時間数、分数、秒数)
このコンストラクタを利用し、例えば次のようにして1000秒を表すTimeSpanオブジェクトを作成することができる。
TimeSpan ts = new TimeSpan(0, 0, 1000);
TimeSpan構造体のToStringメソッドは、その時間間隔から「hh:mm:ss」の形式の文字列を出力する(区切り文字の「:」は変更できない)。
string hms = ts.ToString(); // hmsの内容「00:16:40」
ただし時間間隔が24時間を超えるような場合には、「hh:mm:ss」の「hh」の部分が「日数.hh」の形式となるので注意が必要だ。これについては以下のサンプル・プログラムの出力をご覧いただきたい。
|
|
秒数を「hh:mm:ss」の形式で表示するC#のサンプル・プログラム(timeformat.cs) | |
|
|
秒数を「hh:mm:ss」の形式で表示するVB.NETのサンプル・プログラム(timeformat.vb) | |
サンプル・プログラムの最後では、ミリ秒数からTimeSpanオブジェクトを作成し、ToStringメソッドにより文字列化した例を示している。Environmentクラス(System名前空間)のTickCountプロパティは、システム起動後の経過時間をミリ秒単位で取得するためのものだ。
ミリ秒数からTimeSpanオブジェクトを作成するには、次のような5つの整数型のパラメータを取るコンストラクタを利用する。
TimeSpan(日数、時間数、分数、秒数、ミリ秒数)
サンプル・プログラムの出力例にもあるように、1秒未満の秒数を含んだTimeSpanオブジェクトをToStringメソッドにより文字列化する場合には、秒の部分が小数点第7位まで表示される。
なお、本稿ではToStringメソッドによる簡易な文字列化の方法について述べたが、TimeSpan構造体には日数や秒数などの個々の値を取り出すためのプロパティが一通りそろっているので、それらを利用してより複雑な書式の文字列を作り出すのも難しくはない。
カテゴリ:クラス・ライブラリ 処理対象:日付と時刻 使用ライブラリ:TimeSpan構造体(System名前空間) 使用ライブラリ:Environmentクラス(System名前空間) |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|