0

我正在处理时间表模块。我的问题是我有以下字段的表格

work_start_time  Datetime
work_end_time    Datetime
and other field

现在我的要求是我必须计算迄今为止提交的总小时数。

字段保存为这种格式dd/mm/yy 10:00 AM

请任何人帮助我如何使用 LINQ 从以上两个字段中找到总小时数和总小时数。

任何帮助,将不胜感激。

int totalhours = (from d in db.timesheetWorkingHours
                             .Where(d=>d.WStartTime.HasValue && d.WEndTime.HasValue)
                             select (d.WStartTime - d.WEndTime).Hours).FirstOrDefault();

its gives error 

'System.Nullable<System.TimeSpan>' does not contain a definition for 'Hours' and no extension method 'Hours' accepting a first argument of type 'System.Nullable<System.TimeSpan>' could be found (are you missing a using directive or an assembly reference?) 
4

1 回答 1

0

这是伪代码。这可能会有所帮助。在您的场景时间表对象中,您将从数据库中获取。

IList<Timesheet> timesheets = new List<Timesheet>();
            timesheets.Add(new Timesheet
            {
                work_start_time = new DateTime(2012, 11, 5, 10, 0, 0),
                work_end_time = new DateTime(2012, 11, 5, 19, 0, 0)
            });
            timesheets.Add(new Timesheet
            {
                work_start_time = new DateTime(2012, 11, 5, 10, 0, 0),
                work_end_time = new DateTime(2012, 11, 5, 19, 0, 0)
            });
            int totalhours = 0;
            timesheets.ToList().ForEach(
                p => { TimeSpan ts = p.work_end_time - p.work_start_time; totalhours += ts.Hours; }
            );

            Console.WriteLine(totalhours.ToString());

            Console.ReadKey();
于 2012-11-05T07:00:08.427 回答