Gegeben zwei Datetimes. Wie berechnet man am besten die Anzahl der Arbeitsstunden? In Anbetracht der Arbeitszeiten sind Mo 8 - 5.30 und Di-Fr 8.30 - 5.30, und dass möglicherweise jeder Tag ein Feiertag sein könnte.Berechnen der verstrichenen Arbeitsstunden zwischen 2 Datetime
Dies ist mein Aufwand, scheint scheußlich ineffizient, aber in Bezug auf die Anzahl der Iterationen und dass die IsWorkingDay-Methode die DB trifft, um zu sehen, ob diese Datetime ein Feiertag ist.
Kann jemand irgendwelche Optimierungen oder Alternativen vorschlagen.
public decimal ElapsedWorkingHours(DateTime start, DateTime finish)
{
decimal counter = 0;
while (start.CompareTo(finish) <= 0)
{
if (IsWorkingDay(start) && IsOfficeHours(start))
{
start = start.AddMinutes(1);
counter++;
}
else
{
start = start.AddMinutes(1);
}
}
decimal hours;
if (counter != 0)
{
hours = counter/60;
}
return hours;
}
Wie viele Feiertage haben Sie? ; P – leppie