2016-08-23 2 views
0

enter image description here Моя модельразница между значениями двух даты и времени сущностей

public class abc 
{ 
    public DateTime StartDate{get;set;} 
    public DateTime EndDate{get;set;} 
} 

Я взял скриншот моих столбцов базы данных. Я хочу показать разницу между часами между StartDate и EndDate в моем веб-приложении. Как мне это сделать. Я использую Entity Framework.

ответ

3

Вы можете рассчитать разницу в час по

TimeSpan diff = EndDate - StartDate; 
double hours = diff.TotalHours; 

и если StartDate и EndDate является nullable то

TimeSpan? diff = EndDate.Value - StartDate.Value; 
double hours = diff.TotalHours; 
+0

Я не получаю это 'свойство TotalHours' на экземпляре типа DateTime. Какую версию каркаса .Net вы используете? – RBT

+0

@RBT см. Мое обновление надеюсь, что на этот раз не будет проблем – Mostafiz

+0

@Mostafiz Это должно быть сделано в модели или контроллере? – Priyanshu

1

Вычислить разницу в качестве:

var diffHours = (endDateTime- startDateTime).TotalHours 
+0

Nice! В отличие от двух экземпляров DateTime возникает объект 'TimeSpan', который имеет это свойство TotalHours. +1. – RBT

0

Другой вариант может быть добавление NotMapped propertyt y, чтобы вычислить его. Ваша модель должна выглядеть следующим образом:

public class abc 
{ 
    public DateTime StartDate { get; set; } 
    public DateTime EndDate { get; set; } 

    [NotMapped] 
    public double HourDifference 
    { 
     get 
     { 
      return (EndDate - StartDate).TotalHours; 
     } 
    } 
} 

После получения данных из базы данных вы можете использовать HourDifference для отображения разницы.

+0

Я не могу использовать TotalHours в модели – Priyanshu

+0

Что вы подразумеваете под * неспособным использовать *? –

+0

Это показывает мне красную линию ниже TotalHours – Priyanshu

0

попробовать это .. это даст вам дней Всё различие ..

TimeSpan tSpan = (abc.EndDate.Value).Subtract(abc.StartDate.Value); 
var NoOfDays = tSpan.Days; 
Смежные вопросы