#c# #asp.net
#c# #asp.net
Вопрос:
Я написал этот фрагмент кода, чтобы получить временной интервал между двумя датами и временем:
private TimeSpan CalculateTimeDifference()
{
string StartDate = txtOffBarDate.Text;
string StartTime = txtOffbarTime.Text;
DateTime StartDateTime = Convert.ToDateTime(StartDate " " StartTime);
string EndDate = txtOnBarDate.Text;
string EndTime = txtOnBarTime.Text;
DateTime EndDateTime = Convert.ToDateTime(EndDate " " EndTime);
TimeSpan TotalTime = StartDateTime.Subtract(EndDateTime);
return TotalTime ;
}
Теперь я хочу сохранить результат моего временного интервала в переменной с форматом 00:00 (Часы: минуты).Пожалуйста, подскажите мне, как это сделать.
Ответ №1:
Вы можете использовать свойства TotalHours
и Minutes
:
double hours = TotalTime.TotalHours;
int minutes = TotalTime.Minutes;
string result = string.Format("{0}:{1}", (int) hours, minutes);
Однако я бы вообще не стал использовать строку для хранения этой информации. Используйте значение TimeSpan
since, поскольку оно включает в себя всю информацию, и преобразуйте его в строку только тогда, когда вы хотите ее отобразить.
Ответ №2:
Используйте TotalHours и метод toString() с форматом:
Если ваш временной интервал меньше одного дня (24 часа), используйте этот простой:
string result = TotalTime.ToString(@"hh:mm");
Если нет, используйте это:
string result = string.Format("{0}:{1}", (int)TotalTime.TotalHours, TotalTime.Minutes);
Комментарии:
1. Это фактически вернет «00:59», поскольку 72 часа и 59 минут фактически равны 3 дням 0 часам и 59 минутам.