2015-02-19 4 views
-4

Привет в моей программе Я конвертирую даты в строке для моих целей приложения. Я хочу сравнить эти строки, чтобы узнать, имеют ли даты соответствующие различия между ними.
Пример date1 = "07/02/2015 12:12:000" и date2 = "08/02/2015 16:15:000".
Как я могу сравнить только начальное значение года без синтаксического анализа строки до даты. Заранее спасибо. Я пробовал с .Length -что-то, но не повезло.Сравнение строк дат в vb.net

+4

* без разбора строки до даты * Почему, черт возьми? Просто используйте 'DateTime' /' Date' вместо 'String'. – sloth

+0

Не пытайтесь сравнивать строки даты. Используйте 'date/datetime'. Есть так много функций даты, чтобы сравнить некоторые даты. Не изобретайте велосипед. – Hockenberry

ответ

3

Конвертировать в DateTime объекты, а затем использовать обычные арифметические операции для их сравнения.

dim d1 = DateTime.Parse(input1); // Use ParseExact or more control 
dim d2 = DateTime.Parse(input2); 
If d1.Year != d2.Year Then 
    ' years do not match 
End If 

' or even... 
If (d1 - d2).Days > 365 Then 
    // more than a year apart (modulo leap years) 
End If 

Мета комментарий: Я знаю, что вы сказали «без разбора», но если у вас есть очень веские причины (и скажите нам) и разумный ответ будет разобрать: потому что это гораздо проще и гораздо проще чтобы получить право.

+0

Не изобретайте велосипед, когда существующие функции в пределах языка дают вам именно то, что вам нужно – Tim

+0

Серьезно, я знаю, что я думал, что моя голова была сложена, чтобы сравнить его как строки по какой-то причине. Как-то это сработало, как шарм с разбором благодарности вы все. И жаль глупый вопрос. – asbanoglou