#vb.net #datetime
Вопрос:
Хороший день. Существует следующий код, который вычитает из одной даты другую:
Dim dt As New DateTime(2021, 8, 19)
Dim dt2 As New DateTime(2022, 8, 29)
MsgBox("Days Remaining : " amp; (dt2 - dt).Days)
подскажите, как вычесть даты формата:
19.08.2021 14:07:16 — 24.08.2021 08:24:01
трата времени впустую. Меня интересует только то, как вычесть даты этого формата. Дата и время вводятся в текстовые поля
Комментарии:
Ответ №1:
Вы получите свойство даты (документацию) значений даты и времени. Кроме того, я бы, вероятно, рекомендовал использовать DateTime.Вычтите (документация), которая вернет значение временного интервала.
Взгляните на этот пример:
Dim dt = New DateTime(2021, 8, 19)
Dim dt2 = New DateTime(2022, 8, 29)
Dim daysLeft = dt2.Subtract(dt).Days
Пример: https://dotnetfiddle.net/LMuWtu
Ответ №2:
Вы должны проанализировать отформатированные даты, а затем использовать .Дата, чтобы сохранить только часть даты и выбросить время. Затем вы можете вычесть и использовать TotalDays:
Dim input1 As String = "19.08.2021 14:07:16"
Dim input2 As String = "19.08.2021 14:07:16"
Dim d1 As DateTime = DateTime.Parse(input1).Date
Dim d2 As DateTime = DateTime.Parse(input1).Date
Dim days As Single = (d1 - d2).TotalDays
Форматированные даты должны соответствовать вашему культурному формату. Вы также можете использовать перегрузку синтаксического анализа для использования другой культуры : https://docs.microsoft.com/fr-fr/dotnet/api/system.datetime.parse?view=net-5.0#System_DateTime_Parse_System_String_System_IFormatProvider_