VB.Net 2005, как я могу вычесть дату из (текущая дата минус 7 дней) и произвести количество дней? - PullRequest
3 голосов
/ 28 сентября 2010

У меня есть дата в будущем, например, 13/10/2008 Мне нужно вычесть текущую дату (сегодня 28.09.2010) минус 7 дней, то есть 21.09.2010 минус 13/10/2008, что равняется erm, 720 что-то?

Но текущая дата не всегда будет 28.09.2010, очевидно.

Мне нужен код для этого.

РЕДАКТИРОВАТЬ: Когда я сказал будущее, я имею в виду прошлое:)

Ответы [ 4 ]

5 голосов
/ 28 сентября 2010
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 голос
/ 28 октября 2013
        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)
1 голос
/ 28 сентября 2010

13/10 / 2008 не совсем в будущем:)

Извините за использование кода C #, но:

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

Должно работать.Конечно, наоборот, если вы имели в виду:

(DateTime.Now.AddDays(-7) - dateInPast).TotalDays
0 голосов
/ 28 сентября 2010

«Мне нужен код для этого» кажется слишком похоже на «Плз дай мне кодез», а твоя «дата в будущем» кажется немного в прошлом.

В любом случае, тыследует изучить соответствующие методы структуры DateTime, в частности метод Subtract (обе перегрузки или, альтернативно, его оператор вычитания), и вы должны взглянуть на TimeSpan структура тоже.

Вы можете создать DateTime для сегодняшней даты, вычесть ей TimeSpan из 7 дней и затем вычесть такой результат в DateTime, представляющий вашу дату вбудущее (или, если это в прошлом, сделать наоборот).Вы получите TimeSpan, представляющее разницу во времени между двумя датами, из которой вы можете легко получить количество дней, используя его свойство Days.

Как уже было сказано, для первого вычитанияВы также можете использовать метод AddDays структуры DateTime.

...