Как я могу преобразовать две строки в DateTimes и сравнить их в VB.NET? - PullRequest
0 голосов
/ 10 апреля 2009

Строка возвращается из базы данных в формате: «00/00/0000». Затем мне нужно сравнить ее с датой, которую пользователь ввел в том же формате. Как мне сделать конверсию и сравнить две даты?

Ответы [ 5 ]

2 голосов
/ 10 апреля 2009

Используйте статический метод ParseExact в структуре DateTime для преобразования строки. Вы также передадите желаемый формат: либо дд / мм / гггг, либо мм / дд / гггг, в зависимости от того, какой формат вы хотите (пример 00/00/0000 не дает никаких указаний на то, какой формат подходит для вас).

1 голос
/ 10 апреля 2009

Вы можете использовать


Dim dateA = DateTime.ParseExact(firstDateString, @"dd\/MM\/yyyy", Null)
Dim dateB = DateTime.ParseExact(secondDateString, @"dd\/MM\/yyyy", Null)
Dim areEqual = (dateA = dateB);

Предполагается, что ваш формат даты - день / месяц / год. Если это месяц / день / год, просто поменяйте местами dd и MM

0 голосов
/ 10 апреля 2009

Когда вы говорите «сравнить», пытаетесь ли вы проанализировать, совпадают ли даты (по дням) или в течение нескольких дней? Если сравнивать, если даты совпадают, то вы можете просто сравнить строку или использовать date.equals (как упоминалось в постах до этого), если вы пытаетесь определить диапазон, вам придется использовать сравнение дат * 1001. *

        Dim lDate1 As String = "29/03/2009"
    Dim lDate2 As String = "30/03/2009"
    Dim lPeriod As Int16 = 7

    If lDate1 = lDate2 Then
        '** Dates the same
    End If

    If Date.Equals(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) Then
        '** The same
    End If

    If Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) > (lPeriod * -1) And Date.Compare(Date.ParseExact(lDate1, "dd/MM/yyyy", Nothing), Date.ParseExact(lDate2, "dd/MM/yyyy", Nothing)) < lPeriod Then
        '** Within the period
    End If
0 голосов
/ 10 апреля 2009

Попробуйте следующее

Dim date1 = CDate(firstDateString)
Dim date2 = CDate(secondDateString)
Dim comp = date1 = date2
0 голосов
/ 10 апреля 2009

Попробуйте что-то вроде этого:

String.Compare("00/00/0000", dateTime.ToString("MM/dd/yyyy"))

Но, возможно, лучшим подходом было бы сделать это:

DateTime.Equals(yourDateTime, DateTime.Parse(databaseDateTime));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...