вычтите из одной даты другую

#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. docs.microsoft.com/en-us/dotnet/api/…

Ответ №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_