VB.Net 2005,如何从(当前日期减去7天)中减去日期并生成若干天?

时间:2010-09-28 08:16:07

标签: vb.net visual-studio-2005 .net-2.0

我将来有一个日期,例如13/10/2008我需要减去当前日期(今天是28/09/2010)减去7天,那么21/09/2010减去13/10/2008,这将等于erm,720这个?

但显然,当前日期并不总是28/09/2010。

我需要这个代码。

编辑:当我说未来我的意思是过去:))

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

2008年10月13日并不完全是将来:)

很抱歉使用C#代码,但是:

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

应该有效。当然,如果你的意思是过去的另一种方式:

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

答案 2 :(得分: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)

答案 3 :(得分:0)

“我需要这个代码”似乎有点像“Plz to meh teh codez”,而你的“未来日期”似乎有点过去。

无论如何,你应该调查DateTime结构的相关方法,特别是Subtract方法(两个重载,或替代它的减法运算符),你应该看一下{ {3}}结构也是如此。

您可以为今天的日期创建DateTime,将7天的TimeSpan减去,然后将此结果减去DateTime,表示您将来的日期(或者,如果是在过去,则做相反的事情)。您将获得TimeSpan表示两个日期之间的时间差异,您可以使用其Days属性轻松获取天数。

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