private void printMinutes(ref TextBox[,] grid, int dayNum, DateTime tStart) { //This work period is wrong int srchResult = workPeriods.BinarySearch(new work_period(tStart.AddDays(dayNum)), work_period.CompareByDate()); int index = srchResult < 0 ? ~srchResult - 1 : srchResult; work_period p = workPeriods[index]; TimeSpan cumulMins = p != null ? p.CumulativeMins : TimeSpan.Zero; TimeSpan extraMins; if (srchResult >= 0 && p.IsValid()) { extraMins = ShiftInformation.CalcExtraTime(p.StartTime, p.EndTime, settings.RoundOT); } else { extraMins = TimeSpan.Zero; } int column = dayNum * 2; grid[PhoenixOTSheetDims.RowsPerGrid - 2, column].Text = "+" + extraMins.TotalMinutes.ToString(); grid[PhoenixOTSheetDims.RowsPerGrid - 2, column + 1].Text = "Extra mins"; grid[PhoenixOTSheetDims.RowsPerGrid - 1, column].Font = new Font("Arial", STANDARD_FONT_SIZE, FontStyle.Bold); grid[PhoenixOTSheetDims.RowsPerGrid - 1, column].Text = cumulMins.TotalMinutes.ToString(); grid[PhoenixOTSheetDims.RowsPerGrid - 1, column + 1].Font = new Font("Arial", STANDARD_FONT_SIZE, FontStyle.Bold); grid[PhoenixOTSheetDims.RowsPerGrid - 1, column + 1].Text = "Total mins"; }
private void calcCumulMins(work_period p) { // If date modified is more than 35 days ago, do nothing DateTime day = p.Date; if (day < DateTime.Now.AddDays(-DAY_CUTOFF)) { return; } // Calculate extra minutes TimeSpan diff = ShiftInformation.CalcExtraTime(p.StartTime, p.EndTime, settings.RoundOT); diff = diff < TimeSpan.Zero ? TimeSpan.Zero : diff; // Find cumulative minutes from before TimeSpan cumulMins = diff.Add(findCarryMins(wp, p.Date, DAY_CUTOFF)); // Set flag and reset minutes if >15 if (cumulMins.TotalMinutes >= 15) { p.AddCumulativeOT = true; cumulMins = cumulMins.Subtract(new TimeSpan(0, 15, 0)); } else { p.AddCumulativeOT = false; } p.CumulativeMins = cumulMins; }