5

2 つの異なる時間の差を表示する方法はありますか。現在ボタンは2つです。

Sub AddButtonClick(sender As Object, e As EventArgs)

    StartTime.Text = DateTime.Now.ToString()

End Sub

これにより、最初のタイムスタンプが生成されます

Sub EndBreakClick(sender As Object, e As EventArgs)

    EndTime.Text = DateTime.Now.ToString()

    DateDiff(DateInterval.Minute, Endtime, StartTime)
End Sub

これにより 2 番目のタイムスタンプが生成されますが、datediff 行により、ボタンを押すとすぐにアプリがクラッシュします。

4

3 に答える 3

10

あなたは頼ることができますTimeSpan

Dim elapsedTime As TimeSpan = DateTime.Parse(EndTime.Text).Subtract(DateTime.Parse(StartTime.Text))

必要なすべての情報を抽出できる通常の時間変数として動作します。例:

Dim elapsedMinutesText As String = elapsedTime.Minutes.ToString()

上記のコードは、対応する変換を実行するため、文字列変数を入力 (テキスト ボックスからのテキスト) として受け取ることに注意してくださいConvert.ToDateTime

あなたのコードに関しては、 と を参照してEndTimeおりStartTime、これらはDateTime変数ではなくTextBoxes. DateTime上記で行っているように、それら(テキスト)を次のように変換する必要があります。

DateDiff(DateInterval.Minute, DateTime.Parse(EndTime.Text), DateTime.Parse(StartTime.Text))
于 2013-07-20T18:30:03.847 に答える
0

DateDiff関数がそれを行います。

label1.text = DateDiff("n", DateTime.Parse(EndTime.Text), DateTime.Parse(StartTime.Text)).ToString

アプリがクラッシュする場合、アプリに渡そうとした変数を確認しましたか? textboxではなくを渡そうとしているようtextbox.textです。

于 2013-07-20T18:30:51.340 に答える