C#のTimeSpan構造体で時間の情報を操作する方法
C#では、「TimeSpan構造体」を使って時間の情報を操作することができます。今回は、TimeSpan構造の概要から実際の使い方までを紹介していきたいと思います。ぜひ、参考にしていただければ幸いです。
- プログラマー
- 私が時間の処理をプログラムで書くと結構複雑になってしまいます……どうすれば良いでしょうか?
- プロジェクト
マネージャー -
そんな時はTimeSpan構造体を活用するのがおすすめです。ちなみに、日時を扱いたい方はこちらの記事を参考にしてみてくださいね。
C#のDateTime構造体で文字列に変換する際のフォーマット
TimeSpan構造体とは?
TimeSpan構造体とは、一言で表すと「時間間隔を表す構造体」です。1秒未満の時間情報の取得はもちろん、加算や減算などの計算にも活用できて便利です。あまりピンと来ないかもしれませんが、ここでは「時間を処理するために便利なものなんだな」と覚えておけば問題ありません。
そして、TimeSpanメソッドには下記のような便利なメソッドがすでに用意されています。
[table id=37 /]例えば90分のTimeSpanオブジェクトを作成したい場合は、以下のように書きます。
1
|
TimeSpan ts = TimeSpan.FromMinutes(90);
|
これらのメソッドを活用すれば、プログラム上で分(90分)を時間(1.5時間)に変換するような処理を書かなくて済むようになります。
TimeSpan構造体を実際に使ってみよう
TimeSpan構造体について理解できたところで、ここでは実際にTimeSpan構造体を使っていきたいと思います。
※今回は、指定した日付に1時間30分足した結果を取得してみたいと思います。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
using System;
namespace SampleTimeSpan
{
class Program
{
static void Main(string[] args)
{
// 「20119/1/1 12:30:00」を表すDateTimeオブジェクトを作成
DateTime dt = new DateTime(2019, 1, 1, 12, 30, 0);
// 1時間30分のTimeSpanオブジェクトを作成
TimeSpan ts = TimeSpan.FromMinutes(90);
// 加算を行う
DateTime ret = dt + ts;
// 結果を表示する
Console.WriteLine(ret);
Console.ReadLine();
}
}
}
|
上述のコードを実行すると、このような結果になります。
きちんと、2019/1/1 12:30:00に1時間半足した日時が表示されていますね。
- プログラマー
- なるほど。確かにこれなら時間の計算も簡単にできますね。
- プロジェクト
マネージャー - 加えてシンプルで短いコードになるため、コードの可読性向上にもつながりますよ。
TimeSpan構造体で時間情報の処理ができる
今回は、TimeSpan構造体の概要や使い方を紹介していきました。TimeSpan構造体を使用すれば、複雑になりがちな時間の処理を少ないコード数で行うことができます。時間を扱うことが多いプログラムを作成しているのであれば、活用してみると良いでしょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
C#新着案件New Job
-
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(新宿駅) -
システム開発/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(新宿駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円神奈川県横浜市(桜木町駅) -
デバック、テスト項目の作成/神奈川県横浜市/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円神奈川県横浜市(桜木町駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代前半の方活躍中/経験1年以上の方活躍中】/在宅勤務
月給29万~34万円東京都新宿区(西新宿駅) -
基幹システム開発導入/東京都新宿区/【WEB面談可/C#経験者/20代後半~40代の方活躍中/経験年数不問】/在宅勤務
月給41万~50万円東京都新宿区(西新宿駅)