VB运行时间方法混乱



我必须编写一个程序,当我在两个文本框中输入两个时间时,它会找到经过的时间,一个文本框将是开始时间,另一个文本盒将是结束时间,我不知道如何做到这一点。

示例
开始时间为12:45
结束时间是13:15
那么经过的时间应该是30分钟


Public Class Form1 
    Dim starttime As DateTime 
    Dim endtime As DateTime 
    Dim timetaken As TimeSpan 
    Private Sub btnOK_Click(sender As Object, 
        e As EventArgs) Handles btnOK.Click 
        starttime = txtStart.Text 
        endtime = txtEnd.Text 
    End Sub 
End Class

迅速从我的脑海中消失:

Option Strict On 'every good programmer does this
Public Class Form1 
    Private starttime As DateTime 'Please use Dim only in functions or subs
    Private endtime As DateTime 
    Private timetaken As TimeSpan 
    Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click 
        starttime = DateTime.Parse(txtStart.Text) 'Parse the string input
        endtime = DateTime.Parse(txtEnd.Text)
        timetaken = endtime - starttime
    End Sub 
End Class

当然,这在很大程度上取决于什么字符串可以解析为DateTime实例。这甚至取决于您的系统文化。看看https://msdn.microsoft.com/en-us/library/System.DateTime.Parse(v=vs.110).aspx获取有关输入字符串外观的更多详细信息。如果天数足够,您可以使用DatePicker控件(但遗憾的是,它不支持您的时间需求)。

您可以使用DateTime.ParseExact afaik 提供输入字符串的格式

若要在无法解析文本框中输入的字符串时捕获错误,请使用DateTime.TryParse

首先,使用Dateime.ParseDateTime.ParseExact将文本框中的string转换为DateTime s,

Dim start = DateTime.Parse(txtStart.Text)

然后,您可以使用返回TimeSpanSubtract方法来查找两个DateTime之间的差异。

Dim difference = end.Subtract(start)

最新更新