コード例 #1
0
        protected double BucketEntry(TEntry entry, TracktorReport report)
        {
            DateTime localStart   = ToLocal(entry.StartDate).Value;
            DateTime localEnd     = ToLocal(entry.EndDate.HasValue ? entry.EndDate : DateTime.UtcNow).Value;
            DateTime firstDay     = localStart.Date;
            DateTime lastDay      = localEnd.Date;
            DateTime currentDay   = firstDay;
            double   totalContrib = 0;

            while (currentDay <= lastDay)
            {
                DateTime nextDay       = currentDay.AddDays(1);
                DateTime periodStart   = currentDay > localStart ? currentDay : localStart;
                DateTime periodEnd     = nextDay > localEnd ? localEnd : nextDay;
                var      periodContrib = (periodEnd - periodStart).TotalSeconds;
                report.AddContrib(currentDay, entry.TTaskID, periodContrib);
                currentDay    = nextDay;
                totalContrib += periodContrib;
            }
            return(totalContrib);
        }