-2

我必须编写一个程序,当我将 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
4

2 回答 2

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.

于 2015-02-11T14:23:56.900 回答
0

首先,使用Dateime.ParseorDateTime.ParseExactstring文本框中的 s 转换为DateTimes,

Dim start = DateTime.Parse(txtStart.Text)

然后您可以使用返回 aDateTime的方法找到两个 s之间的差异。SubtractTimeSpan

Dim difference = end.Subtract(start)
于 2015-02-11T14:26:49.673 回答