2010-09-28 258 views

回答

5
Sub Main() 
    Dim dt As DateTime = New DateTime(2008, 10, 13) 
    ' be careful what you are subtracting from what 
    ' the date you have is not in the future (year 2008) 
    ' if the date is in the future: (dt.Subtract(DateTime.Now.AddDays(-7))).TotalDays 
    ' or simply take the absolute value 
    Dim days As Double = (DateTime.Now.AddDays(-7).Subtract(dt)).TotalDays 
    Console.WriteLine(days) 
End Sub 

您还会注意到TotalDays属性是Double类型。

+0

错误对'Date'和'Object'类型未定义运算符' - '。 – Jules 2010-09-28 08:24:56

+0

对,对不起,我没有看到你使用的VS2005不支持变量类型推断。请参阅我的更新。声明变量时需要指定类型。 – 2010-09-28 08:26:30

+0

仍然出现与编辑后的代码相同的错误 错误1未为'Date'和'Object'类型定义运算符' - '。 – Jules 2010-09-28 08:28:09

1

13/10/2008是不完全在未来:)

对不起,我使用C#代码,但是:

(dateInFuture - DateTime.Now.AddDays(-7)).TotalDays 

应该工作。当然,反过来,如果你指的是在过去的:

(DateTime.Now.AddDays(-7) - dateInPast).TotalDays 
+0

嗯,有麻烦将其转换为VB http://www.developerfusion.com/tools/convert/csharp-to-vb/ – Jules 2010-09-28 08:27:07

0

“我需要的代码,这”似乎有点太像“PLZ给MEH德codez”和你的“日期的未来”似乎有点过去。

无论如何,你应该调查DateTime结构的相关方法,尤其是Subtract方法(包括过载,或替代它的减法运算符),你应该有一个看看TimeSpan结构太。

您可以为今天的日期DateTime,减去7 TimeSpan一个天,然后减去这样的结果表示在未来的日期DateTime(或者,如果是在过去,做对面)。您将得到TimeSpan代表这两个日期之间的时间差,从中您可以轻松获得使用其Days属性的天数。

正如其他人所说,要做第一次减法,您还可以使用DateTime结构的AddDays方法。

+0

如果所有问题的答案都是谷歌它并不需要这样的网站,并且找出,大声笑 – Jules 2010-09-28 08:29:52

+0

学习编程是学习把砖块放在一起。提供现成的答案对于复杂的问题是有意义的,但是当所有问题都是“在图书馆中找到我想要的东西”时,对我而言,最好的答案就是轻轻地指向文档。请注意,我没有说“只是谷歌它”,我向你提供了一些指向MSDN相关部分的指针,所以将来你可以自己解决这类小问题。请记住,我只花更少的时间来提供你的代码,但那将会给你一个勺子 - 最多是无用的。 – 2010-09-28 08:33:48

1
 Dim ValidDate As Date =cDate("Tuesday, December 31, 2013") 'A date in Future 

     Dim date1 As New System.DateTime(ValidDate.Year, ValidDate.Month, ValidDate.Day) 
     Dim date2 = Now 

     Dim Diff1 As System.TimeSpan 

     Diff1 = date1.Subtract(date2) 

     Dim TotRemDays = (Int(Diff1.TotalDays)) 

     MsgBox(TotRemDays)