Member 13711215 Ответов: 2

Как сравнить и рассчитать две даты


Как я могу рассчитать,сколько дней, часов,минут,секунд займет ремонт машины.

1. позиция - зарегистрируйтесь машина ошибка (в формате:
dd/MM/yyyy HH:mm:ss
)
2. положение - исправьте эту ошибку машины.(формат:
dd/MM/yyyy HH:mm:ss
)

теперь я хотел бы подсчитать,сколько дней,часов,минут, секунд займет этот ремонт машины. (1.Позиция - 2. позиция.

Как я могу это сделать?

Спасибо за совет

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

_________________________________

2 Ответов

Рейтинг:
12

Maciej Los

Пожалуйста, сначала прочтите это: Выполнение арифметических операций с датами и временем | Microsoft Docs[^]

Dim startTime As DateTime = DateTime.Now
Dim endTime As DateTime = DateTime.Now.AddDays(1).AddHours(5).AddMinutes(93).AddSeconds(75)
Dim span As TimeSpan = endTime.Subtract(startTime)
Console.WriteLine("Time Difference: {0} days, {1} hours, {2} minutes, {3} seconds", span.Days, span.Hours, span.Minutes, span.Seconds)

Результат:
Time Difference: 1 days, 6 hours, 34 minutes, 15 seconds


Удачи вам!


Member 13711215

Как я могу записать результат на этикетку?

Maciej Los

Me.Label1.Text = String.Format("Time Difference: {0} days, {1} hours, {2} minutes, {3} seconds", span.Days, span.Hours, span.Minutes, span.Seconds)

Member 13711215

спасибо

Maciej Los

Всегда пожалуйста.

Рейтинг:
1

OriginalGriff

Преобразования их в значения datetime, используя значение datetime.Метод tryparseexact[^], а затем вычтите их. Это даст вам промежуток[^] значение, имеющее нужные вам свойства.

Dim date1 As String = "30/12/2018 06:41:13"
Dim date2 As String = "02/01/2019 17:01:42"
Dim dt1 As DateTime

If Not DateTime.TryParseExact(date1, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, dt1) Then
    ... report problem to user ...
    Return
End If

Dim dt2 As DateTime

If Not DateTime.TryParseExact(date2, "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, dt2) Then
    ... report problem to user ...
    Return
End If

Dim diff As TimeSpan = dt2 - dt1
Console.WriteLine(diff.Days)
Console.WriteLine(diff.Hours)
Console.WriteLine(diff.Minutes)
Console.WriteLine(diff.Seconds)