0

私はタイムシートモジュールに取り組んでいます。私の問題は、次のフィールドを持つテーブルがあることです。

work_start_time  Datetime
work_end_time    Datetime
and other field

今の私の要件は、日付までに提出された合計時間を計算する必要があることです。

フィールドはこの形式のように保存されますdd/mm/yy 10:00 AM

上記の2つのフィールドから合計時間を見つけ、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 に答える