Muszę obliczyć łączne kwoty do zapłaty dla posiadaczy kart, aby uzyskać dostęp oparty na karcie do parkingów. Moja struktura stawek wygląda tak. Każda strefa na parkingu będzie miała priorytetową listę tych cen.Jak obliczyć stawki parkingowe na kilka dni, gdy stawki są ustalane codziennie?
public partial class HourlyPrice
{
public int Id { get; set; }
public int DayId { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
public int MinHour { get; set; }
public int MaxHour { get; set; }
public decimal Price { get; set; }
}
DayId
pozwala na np. "bezpłatnie w niedziele od 13h00". MinNour
i "MaxHour" pozwalają na 0 do 2 godzin są bezpłatne, a 5 do 6 godzin kosztuje 11,00 R11. StartTime
i EndTime
pozwalają na "po 19h00 kosztuje R7.00, stawka ryczałtowa".
Moją obawą jest to, gdzie nie określono ceny wielodniowej. Kiedy samochód wchodzi pod jedną strukturą cenową jednego dnia i wyjeżdża pod inną ceną w innym dniu. Wydaje mi się, że będę musiał kolejno odwiedzać każdą godzinę zaparkowaną w pojeździe i gromadzić należną kwotę. Wydaje się to bardzo drogim sposobem robienia rzeczy.
Każda rada na temat takiej realizacji zostanie bardzo doceniona.
Można zmierzyć całkowity czas spędzony w każdej "GodzinieCeny", przechodząc od "bieżącej chwili" do granicy odpowiedniej "Godzinowej Ceny", a następnie czyniąc ten moment graniczny "bieżącym momentem" i powtarzając (zwróć uwagę na nakładanie się). –
"Wydaje się, że to bardzo drogi sposób robienia rzeczy." Ile tysięcy samochodów zamierzasz obsłużyć na sekundę? – Corak
Spoglądając na zestaw wymagań, nie widzę żadnego sposobu na przerwanie każdego okresu parkowania w dół do godzin i obliczenie kosztu za godzinę przy użyciu zestawu reguł. Chciałbym zobaczyć inne rozwiązania, ale nie mogę myśleć o jednym ... –