電子書籍の厳選無料作品が豊富!

C#経過時間の求め方

お世話になっております。
初歩的な質問かもしれないので申し訳ないのですが、
やり方がわからなかったため質問させていただきます。

現在日時から定義の時間を引いた経過時間を求めたいのですが、やり方がわかりません。

現在、以下のようにやっているのですが、
データ型の規定を外れてしまうためエラーになってしまいます。

---------------------------------------------
string date = "2010/09/25";
string time = "13:00:00";

string[] b = {};
string[] c = {};
DataTime a;

b = date.Split('/');
c = time.Split(':');
a = DateTime.Now.AddYears(-int.Parse(b[0]));
a = DateTime.Now.AddMonths(-int.Parse(b[1]));
a = DateTime.Now.Add(new TimeSpan(-int.Parse(b[2]), -int.Parse(c[0]), -int.Parse(c[1]), -int.Parse(c[2])));
---------------------------------------------

経過時間を求めたいので、
○時間○分だけでも表示できるようにしておきたいです。

何か適切な方法はありませんでしょうか?
ご回答頂ければありがたく思います。

宜しくお願い致します。

A 回答 (1件)

まず,できることなら日付と時刻をSystem.StringではなくSystem.DateTimeで持たせてください。


それができないならば,計算前にSystem.DateTime型に変換してしまってください。

MSDN: DateTime.ParseExact メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.d …
MSDN: DateTime.TryParseExact メソッド (System)
http://msdn.microsoft.com/ja-jp/library/system.d …
MSDN: DateTime.Subtraction 演算子 (DateTime, DateTime) (System)
http://msdn.microsoft.com/ja-jp/library/1905yhe2 …

example)
var target = DateTime.ParseExact(date + " " + time, "yyyy/MM/dd HH:mm:ss", CultureInfo.InvariantCulture);
var result = DateTime.Now - target;
Console.WriteLine("{0}時間{1}分", (int)result.TotalHours, result.Minutes);
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。なんとか出来ました。

お礼日時:2010/10/11 11:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!