VB经过时间的方法混乱

时间:2015-02-11 14:13:37

标签: vb.net time elapsed

我必须编写一个程序来查找我在2个文本框中输入2次所经过的时间,一个文本框将是开始时间,另一个文本框将是结束时间,我对如何执行此操作感到迷茫

实施例
开始时间是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

2 个答案:

答案 0 :(得分:2)

很快就出了我的脑袋:

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

答案 1 :(得分:0)

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

Dim start = DateTime.Parse(txtStart.Text)

然后,您可以使用返回DateTimeSubtract方法找到两个TimeSpan之间的差异。

Dim difference = end.Subtract(start)