2015-02-11 46 views
-2

我必须的代码的程序,其发现当我输入2倍到2个文本框的经过时间,一个文本框将是开始时间,其他文本框将在结束时刻,我丢失我如何做到这一点。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 
+1

我们不能不能告诉你什么是错与您的代码没有你的代码 – Plutonix 2015-02-11 14:15:15

+0

我没有太多的代码,但,即时通讯试图找出真正做到如何将它 公共类Form1中 昏暗的开始时间为DATETIME 昏暗的结束时间作为日期时间 昏暗timetaken作为时间跨度 私人小组btnOK_Click(发送者为对象,例如作为EventArgs的)把手btnOK.Click 开始时间= txtStart.Text 结束时间= txtEnd.Text 结束子 末级 即所有IH到目前为止,我不知道从哪里开始 – RobertMcGugian 2015-02-11 14:16:47

+1

首先使用'Option Strict On'(总是)。如果'starttime'是'DateTime'类型,你不能简单的字符串分配给它('txtBox.Text'),并把它奇迹般地转化为'DateTime' – Plutonix 2015-02-11 14:21:52

回答

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 

当然,这在很大程度上取决于什么字符串可以解析d转换为DateTime实例。它甚至取决于你的系统文化。查看https://msdn.microsoft.com/en-us/library/System.DateTime.Parse(v=vs.110).aspx了解更多关于输入字符串应该如何的细节。如果日子够了,您可以使用DatePicker控件(但不幸的是,您不需要时间)。

您可以提供输入字符串的格式与DateTime.ParseExact据我所知

发现错误时,在文本框输入的字符串不能解析,使用DateTime.TryParse

+0

希望这样会怎样我得到这个在消息框中显示?我得到一个错误,当我做 的msgbox(timetaken) – RobertMcGugian 2015-02-11 15:14:20

+0

我得到它的工作,非常感谢 – RobertMcGugian 2015-02-11 15:16:11

+0

的MessageBox需要一个字符串,用'的ToString()',它可以在任何对象上调用,因为它的方法'object'类,每个.NET对象都从中继承。好的类覆盖它给你一个有用的字符串然后(虽然不是所有的,然后只是返回类型名称,直接在'object'中实现)。 – 2015-02-11 21:13:22