【问题标题】:VB.Net 2005, how can I subtract a date from the (current date minus 7 days) and produce a number of days?VB.Net 2005,如何从(当前日期减去 7 天)中减去日期并产生天数?
【发布时间】:2010-09-28 08:16:07
【问题描述】:

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

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

我需要这个代码。

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

【问题讨论】:

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


    【解决方案1】:
    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 ​​运算符 '-' 没有为类型 'Date' 和 'Object' 定义。
    • 对,对不起,我没看到你使用的是不支持变量类型推断的 VS2005。请看我的更新。声明变量时需要指定类型。
    • 编辑后的代码仍然出现相同的错误 错误 1 ​​运算符 '-' 没有为类型 'Date' 和 'Object' 定义。
    • 这很奇怪。怎么样:(DateTime.Now.AddDays(-7).Subtract(dt)).TotalDays
    【解决方案2】:

    2008 年 13 月 10 日并不完全在未来 :)

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

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

    应该可以。如果你指的是过去,当然反过来:

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

    【讨论】:

    【解决方案3】:
            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)
    

    【讨论】:

      【解决方案4】:

      “我需要这个代码”看起来有点像“请给我代码”,而你的“未来日期”似乎有点过去了。

      无论如何,您应该研究DateTime 结构的相关方法,尤其是Subtract 方法(两个重载,或者替代它的减法运算符),您也应该看看TimeSpan 结构.

      您可以为今天的日期创建一个 DateTime,减去 7 天的 TimeSpan,然后将这样的结果减去代表您未来日期的 DateTime(或者,如果它在过去,做相反的事)。你会得到一个 TimeSpan 代表两个日期之间的时间差,你可以使用它的 Days 属性轻松地从中获取天数。

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

      【讨论】:

      • 如果所有问题的答案都是谷歌搜索并找出来,那么根本不需要这样的网站,哈哈
      • 学习编程就是学习把积木拼在一起。提供现成的答案对于复杂的问题是有意义的,但是当所有的问题是“在库中找到我想要的调用”时,对我来说最好的答案是轻轻地指向文档。请注意,我并没有说“google it”,而是为您提供了一些指向 MSDN 相关部分的指针,这样您以后就可以自己解决此类小问题了。请记住,我会花更少的时间为您提供代码,但这将是在喂您 - 最多没用。
      猜你喜欢
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 2017-04-28
      • 2013-01-03
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      相关资源
      最近更新 更多