Расчет промежутка времени для часов и минут в C # - PullRequest
3 голосов
/ 11 ноября 2010

Окончательный результат должен отображать пользователю промежуток времени между начальным часом и конечным часом (например, начать работу в 06:30 и закончить в 18:30, результат для отображения должен быть 12 часов).

Теперь я должен DateTime параметры;fromTime и toTime Каждый параметр DateTime имеет час в 24-часовом формате, а также может иметь значение минут 30 минут.

Что я хочу сделать, это получить промежуток времени между этими DateTime параметрами,Для часов, которые я использовал этот метод:

Public TimeSpan GetHourSpan(DateTime fromTime, DateTime toTime)
{
    TimeSpan fromH = TimeSpan.FromHours(fromTime.Hour);
       TimeSpan toH = TimeSpan.FromHours(toTime.Hour);
       TimeSpan hourTotalSpan = toH.Subtract(fromH);
    return hourTotalSpan;
}

Это здорово, моя проблема - получить промежуток времени в минутах, если он есть, и, наконец, добавить его к объекту TimeSpan для отображения.

Если оба имеют промежуток времени 30 минут, описанный выше способ вернет 0, а затем я должен начать проверять каждый параметр, если он имеет значение в свойстве min.

Нет ли простогоспособ получить промежуток времени для часов и минут вместе?

Ответы [ 4 ]

13 голосов
/ 11 ноября 2010
TimeSpan span = toTime - fromTime;
// Split into hours:minutes: span.Hours, span.Minutes
// Total span in hours: span.TotalHours
// Total span in minutes (hours * 60): span.TotalMinutes
4 голосов
/ 11 ноября 2010

Если вычесть DateTime из DateTime, результатом будет TimeSpan. Так что вы можете просто взять

TimeSpan result = toTime-fromTime;
int hours = result.Hours;
int minutes = result.Minutes;
1 голос
/ 11 ноября 2010
TimeSpan span = toTime - fromTime;
0 голосов
/ 20 апреля 2013
public double DurationinMins(DateTime startDt, DateTime endDt)
    {
        var ts = endDt.Subtract(startDt);
        return ts.TotalMinutes;
    }
...