我的日曆正在與一類移,看起來像這樣:C#中的時間
public class Shift
{
public TimeSpan Start { get; private set; } //e.g. 08:00
public TimeSpan End { get; private set; } //e.g. 17:00
public DateTime Day { get; } //e.g. 23.3. 2015
}
Calendar類看起來是這樣的:
public class Calendar
{
public Shift[] ShiftsOfEmployee { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public Calendar(DateTime startDate, DateTime endDate)
{
StartDate = startDate;
EndDate = endDate;
ShiftsOfEmployee = new Shift[Length()];
}
public int Length()
{
return (EndDate - StartDate).Days;
}
public void calculateMaximumOvertime()
{
//TODO
}
}
我是什麼現在想做的是calculateMaximumOvertime函數。我正在考慮通過計算週數(例如,int weeks = (EndDate - StartDate).TotalDays/7;
),然後創建每週一個結果列表。然後通過ShiftsOfEmployee
一天到一天,並將每個Shift
(如果有的話,否則爲0)的值加到相應的星期。然後,我將不得不再次通過結果列表並選擇最大值。所有這些在我看來有點笨重,我在考慮是否有更好的方法來做到這一點?
我需要有日曆周,即使他們不是整體的最大值。但是,你的計數週數是正確的。 – Dracke
@Dracke將您的列表中剩餘的值設爲空 – RH6
@Dracke pinging並更新了答案 – RH6