Member 12809412 Ответов: 2

Vb.net функция datediff


Всем Привет,

Может ли кто-нибудь помочь мне получить точный dateDiff между двумя датами?
Мне нужно узнать, сколько лет прошло между двумя свиданиями.



Тусклый firstDate как дата
Тусклая Вторая Дата В Качестве Даты
firstDate = "2016-09-28"
Вторая Дата = Сейчас



Текстовое поле textbox1.Текст = Функция Datediff(Для Dateinterval.Год, firstDate, SecondDate)
'Значение текстового поля = 1 .. оно должно быть равно нулю, потому что период с 28 сентября 2016 года по сегодняшний день не эквивалентен 1 целому году.

я просто не могу разделить его на 365 или 366.

вот еще один пример.
Datediff(dateInterval.year, 2015-02-01 , 2017-01-01 ) = 2 .
он должен быть только 1. если только нынешняя дата не является 2017-02-01.

Пожалуйста помочь.

Что я уже пробовал:

Dim firstDate As Date
Dim SecondDate As Date
        firstDate = "2016-09-28"
        SecondDate = Now


       
        TextBox1.Text = DateDiff(DateInterval.Year, firstDate, SecondDate)

[no name]

Видишь ли https://www.codeproject.com/Tips/569948/Working-with-Age-its-not-the-same-as-a-timespan

2 Ответов

Рейтинг:
16

Peter Leow

Проверить это:

Imports System
Public Module Module1
    Public Sub Main()
		
		Dim firstdate As New Date(2015, 2, 1, 0, 0, 0)
		Dim seconddate As New Date(2017, 1, 1, 0, 0, 0)
		
		Dim timespan As TimeSpan = seconddate - firstdate
		Dim interval As DateTime = DateTime.MinValue.AddDays(timespan.Days)

		Console.WriteLine("{0} - {1} = {2} years", seconddate, firstdate, interval.Year  - 1)
    End Sub
End Module
Ссылка: Структура Временного Интервала (Система)[^]


Рейтинг:
0

Member 12809412

Спасибо, Питер.

Это очень полезно.
У меня также есть собственное решение, которым я хочу поделиться. Это дает точный результат.

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim x As Integer
        Dim dt1 As Date
        Dim dt2 As Date

        dt1 = DateTimePicker1.Text
        dt2 = DateTimePicker2.Text
        dt1 = dt1.AddYears(x)
        x = DateDiff(DateInterval.Year, dt1, dt2)
        dt1 = dt1.AddYears(x)

        If dt1 <= dt2 Then
            x = x
            TextBox1.Text = x
        Else
            x = x - 1
            TextBox1.Text = x
        End If
    End Sub


End Class