Получите разницу в часах / минутах от двух значений даты - PullRequest
1 голос
/ 11 апреля 2011

У меня есть значение даты (например, 2011-04-11 07: 45: 00.000), которое я извлекаю из своей базы данных (через Entity Framework). Мне нужно вытащить только час из исходного значения даты (например, 07:45:00), получить текущее время, а затем вычесть текущее время из значения времени базы данных. В псевдокоде я ищу что-то вроде этого:

Dim my_date as DateTime = from_db ' This is the value pulled from the database.
Dim this_date as DateTime = Date.Now ' This is pulled via a VB.NET function.
Dim my_hour = my_date_but_only_hours ' Somehow, I need to strip the date off the my_date
Dim this_hour = this_date_but_only_hours ' Same as line above.
Dim hour_difference = my_hour - this_hour
Response.Write("There are " & hour_difference & " hours left before the time runs out.")

Ответы [ 3 ]

2 голосов
/ 11 апреля 2011
my_date.Subtract(this_date).TotalHours

или

my_date.TimeOfDay.Subtract(this_date.TimeOfDay).TotalHours
2 голосов
/ 11 апреля 2011

Вы можете использовать DateTime.TimeOfDay, чтобы отбросить компонент даты. Затем вы можете вычислить разницу, представленную как TimeSpan. Это дает вам доступ к информации о разнице во времени:

Dim dbTimeOfDay = from_db.TimeOfDay
Dim nowTimeOfDay = DateTime.Now.TimeOfDay
Dim timeDifference = dbTimeOfDay - nowTimeOfDay
Dim hoursDifference = timeDifference.TotalHours

Переменная hoursDifference представляет собой Double, где минуты и секунды включены в дробь. Вы можете округлить его или обрезать, если это требуется.

1 голос
/ 11 апреля 2011
Dim dbDate = from_db.TimeOfDay  'This gets you a TimeSpan object representing just the time of day in that date. 

Если вам нужен только час, перейдите к:

dim dbHour = dbDate.Hour
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...