2015-03-31 109 views
0

我想从DateTime变量中减去小时数和分钟数,并且发现其他文章显示您应该能够使用.AddHours(-3)来实现此目的但它不适合我。我从vb.net中的DateTimePicker控件获取日期时间。比如说时间是上午10点,我想从中减去3小时,使它成为上午7点。我的小时变量的计算结果为-3,但即使我将字符数-3置于.AddHours中,它仍然不会减去时间。继承人的代码从DateTime不工作中减去小时数和分钟数

Dim ApptTime As DateTime = Convert.ToDateTime(DateTimePicker2.Value) 
     Dim travelTime As String = Label60.Text 
     Dim newtime As Double 
     Dim split() As String = travelTime.Split(" ") 
     If split.Length = 2 Then 
      Dim Minutes As String = split(0).Replace("mins", "") 
     Else 
      Dim Hours As Double = split(0).Replace("Hours", "") 
      Dim Minutes As Double = split(2).Replace("mins", "") 
      Hours = -Hours 
      Minutes = -Minutes 
      ApptTime.AddHours(Hours) 
      ApptTime.AddMinutes(Minutes) 
      Label62.Text = (ApptTime.ToString) 
+4

他们返回新值的函数:'AppTime = ApptTime.AddHours(小时)' – Plutonix 2015-03-31 14:15:35

+0

某事如此简单...... Ha感谢您的帮助,这样做的技巧 – user3841709 2015-03-31 14:17:35

+3

它总是有助于阅读[文档](https://msdn.microsoft.com/en-us/library/system.datetime.addhours% 28v = vs.110%29.aspx):“此方法不会更改此'DateTime'的值。相反,它返回一个新的'DateTime',其值是该操作的结果...“ – 2015-03-31 14:17:38

回答

1

它简单的错误...

Dim ApptTime As DateTime = Now 
     'ApptTime.Subtract(New TimeSpan(1, 60, 60)) 'won't work 
     ApptTime = ApptTime.Subtract(New TimeSpan(1, 60, 60)) '1h , 60m , 60s 
+0

感谢您的帮助 – user3841709 2015-03-31 19:44:11

1

试试这个:

Dim NowMinusThreeHours = DateAdd(DateInterval.Hour, -3, Now) 
相关问题