【发布时间】: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
我有一个未来的约会,例如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
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
【讨论】:
(DateTime.Now.AddDays(-7).Subtract(dt)).TotalDays?
2008 年 13 月 10 日并不完全在未来 :)
很抱歉使用 C# 代码,但是:
(dateInFuture - DateTime.Now.AddDays(-7)).TotalDays
应该可以。如果你指的是过去,当然反过来:
(DateTime.Now.AddDays(-7) - dateInPast).TotalDays
【讨论】:
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)
【讨论】:
“我需要这个代码”看起来有点像“请给我代码”,而你的“未来日期”似乎有点过去了。
无论如何,您应该研究DateTime 结构的相关方法,尤其是Subtract 方法(两个重载,或者替代它的减法运算符),您也应该看看TimeSpan 结构.
您可以为今天的日期创建一个 DateTime,减去 7 天的 TimeSpan,然后将这样的结果减去代表您未来日期的 DateTime(或者,如果它在过去,做相反的事)。你会得到一个 TimeSpan 代表两个日期之间的时间差,你可以使用它的 Days 属性轻松地从中获取天数。
正如其他人所说,要进行第一次减法,您还可以使用DateTime 结构的AddDays 方法。
【讨论】: