Witam,
Mam prośbę o pomoc w być może trywialnym problemem, ale przeszukuje internet bez skutku. Chodzi mi o wyliczenie różnicy między dwoma datami i wyświetlenie tej różnicy w widoku. Aplikację piszę w Asp.Net Core. Poniżej część kodu:
Model:
public class Ecp
{
[Key]
public int Id { get; set; }
[Display(Name = "Imię")]
public string Name { get; set; }
[Display(Name = "Nazwisko")]
public string Surname { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[Display(Name = "Data")]
public DateTime StartJobDate { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:HH:mm}", ApplyFormatInEditMode = true)]
[Display(Name = "Godzina rozpoczęcia")]
public DateTime StartJobHour { get; set; }
[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:HH:mm}", ApplyFormatInEditMode = true)]
[Display(Name = "Godzina zakończenia")]
public DateTime EndJobHour { get; set; }
}
Kontroler:
public class HomeController : Controller
{
private readonly EcpDbContext _context;
public HomeController(EcpDbContext context)
{
_context = context;
}
public string GetName()
{
string login = WindowsIdentity.GetCurrent().Name;
var name = _context.appUsers
.Where(n => n.LoginWindows == login)
.Select(n => n.Name)
.FirstOrDefault();
return name;
}
public string GetSurname()
{
string login = WindowsIdentity.GetCurrent().Name;
var surname = _context.appUsers
.Where(n => n.LoginWindows == login)
.Select(n => n.Surname)
.FirstOrDefault();
return surname;
}
//Moja próba wyliczenia róznicy w metodzie, ale nie potrafię przekazać tej metody do widoku :(
public double JobTime(double startJob, double endJob)
{
return endJob - startJob;
}
public async Task<IActionResult> Index()
{
string name = GetName();
string surname = GetSurname();
ViewBag.fullName = name + ' ' + surname;
return View(await _context.Ecps.ToListAsync());
}
Widok:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Surname)
</td>
<td>
@Html.DisplayFor(modelItem => item.StartJobDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.StartJobHour)
</td>
<td>
@Html.DisplayFor(modelItem => item.EndJobHour)
</td>
<td>
//Jak wyświetlić różnicę EndJobHour - StartJobHour
</td>
</tr>
Gorąca prośba o jakiekolwiek porady czy wskazówki.
Pozdrawiam