从日期中减去天数

17

我正在极力尝试想出如何从今天的日期中减去5天...

我有以下简单的代码,它搜索并比较文本文件数组搜索的结果,然后将它们与今天的日期进行比较。如果文本文件中的日期比今天早,则删除;否则不删除。

但是我想要的是,如果文本文件中的日期早于5天或更早,则删除。

这是在英式日期格式中使用的。

    Sub KillSuccess()
    Dim enUK As New CultureInfo("en-GB")

    Dim killdate As String = DateTime.Now.ToString("d", enUK)

    For Me.lo = 0 To UBound(textcis)
        If textcis(lo).oDte < killdate Then
            File.Delete(textcis(lo).oPath & ".txt")
        End If
    Next

End Sub 

谢谢


1
如果您想测试一个日期变量,请不要将其转换为字符串。oDte属性是什么类型? - Ňɏssa Pøngjǣrdenlarp
我认为你想要的是 DateAdd 函数,然后减去 5 天。http://msdn.microsoft.com/zh-cn/library/system.datetime.adddays.aspx - Simon Martin
现在.AddDays(-5.0)应该能做到。 - Josh Braun
哇,谢谢大家 - 我现在会查看。FYI,oDte以字符串格式存在,因此已被转换为字符串。 - elmonko
对于日期比较,您需要使用日期变量。将“oDte”转换为日期,而不是像Amit的答案中那样将当前日期转换为字符串。 - Ňɏssa Pøngjǣrdenlarp
1个回答

28

您可以使用AddDays方法;在代码中,它应该是这样的:

Dim today = DateTime.Now
Dim answer = today.AddDays(-5)

msdn.microsoft.com/zh-cn/library/system.datetime.adddays.aspx

这将使你的代码

Sub KillSuccess()

    Dim killdate = DateTime.Now.AddDays(-5)

    For Me.lo = 0 To UBound(textcis)
        If textcis(lo).oDte < killdate Then
            File.Delete(textcis(lo).oPath & ".txt")
        End If
    Next
End Sub 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接