質問

データベースに保存した 2 つの時間の間の時間を計算したいと考えています。したがって、文字通り、2 つの値の間の時間の長さを知りたいのです。

14:10:20 - 10:05:15 = 02:05:05

したがって、結果は 02:05:05 になります。

C# を使用してこれを実現するにはどうすればよいでしょうか?

14:10:20 はデータベースに保存した形式です。

役に立ちましたか?

解決

2 つの時間値を TimeSpan 変数に読み取り、次の処理を実行します。 .Subtract() TimeSpan の結果を取得するには、より大きな TimeSpan 変数を使用します。

例えば。 TimeSpan difference = t1.Subtract(t2);.

他のヒント

最初のステップは、データベースに保存されている時間値を .NET に取得することです。 DateTime 構造体。

それらを SQL-DateTime 値としてデータベースに保存した場合は、次のように直接取得できます。 DateTime. 。次のようになります。

SQLCommand getTimeCommand = new SQLCommand("SELECT time FROM table", dbConnection);
SQLDataReader myReader = getTimeCommand.ExecuteReader();
while (myReader.Read())
{
    DateTime time = myReader.GetDateTime(0);
}
myReader.Close();

実際の実装は異なる場合があります。MSDN ライブラリの ADO.NET ドキュメントを参照してください。

時刻を表す文字列をすでに取得している場合は、その文字列を解析して DateTime 静的メソッドを使用する

DateTime.Parse 

または

DateTime.ParseExact

あなたの場合、使用する必要があるかもしれません ParseExact, 、文字列の読み取り方法を定義するフォーマット文字列を指定できます。例は MSDN ライブラリにあります。

.NET の期間は、 TimeSpan 構造体。datetime から datetime までの経過時間を取得するのは簡単です。

DateTime time1, time2; //filled with your timevalues from the db
TimeSpan elapsed = d2 - d1;

elapsed 2 つの間のタイムスパンが含まれるようになりました DateTimes. 。構造体にアクセスするためのメンバーがいくつかあります。 TimeSpan. 。MSDN ライブラリを調べて、必要なものを見つけてください。

DateTime オブジェクトは「-」演算子をサポートしているため、そのようなオブジェクトに時刻を読み込んで減算することができます。テストするには、これを確認してください。

DateTime then = DateTime.Now;
Thread.Sleep(500);
DateTime now = DateTime.Now;
TimeSpan time = now - then;
MessageBox.Show(time.ToString());
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top