Tagespreise saisonübergreifend summieren?

H

HDKF

Moin @ all!

Ich habe eine verflixt knifflige Aufgabe zu lösen. Und zwar muss ich für eine bestimmte Anzahl Tage, die wechselnd vorgegeben wird einen Preis berechnen. Das Problem ist leider die Saisonabhängigkeit, siehe hier:

01.11.2004-20.12.2004 29 €
20.12.2004-05.01.2005 39 €
06.01.2005-25.03.2005 29 €
26.03.2005-30.06.2005 39 €
01.07.2005-04.09.2005 59 €
05.09.2004-31.10.2005 39 €
01.11.2005-19.12.2005 29 €
19.12.2005-31.12.2005 39 €


Mit diesen Zeitangaben und Tagespreisen muss ich übergreifend Gesamtkosten berechnen,

also z.B.
17.11.2004 - 25.11.2004= 8 Tage x 29 Euro.

aber:
17.12.2004 - 25.12.2004=3 Tage x 29 Euro + 5 Tage x 39 Euro.

Hat jemand eine Idee, wie ich das Script am Besten aufziehe oder eine Beispiellösung parat? Mir ist eigentlich egal wie es gelöst wird, am liebsten wäre mir Javascript, da weiß ich mir selbst noch gut zu helfen. PHP kann ich nicht so dolle, das wär ein Problem für mich das umzusetzen. Fertige Lösungen sind natürlich aber illkommen :) auch mit mySQL-Unterstützung.

Wäre toll wenn jemand Rat wüsste.
Es grüsst euch
HDKF

//Edit:

Hab da gerade einen Ansatz gefunden, weiß nur nicht genau wie ich das umsetzen kann.
Ich stelle mir die Rechenoperation etwa so vor:

- Alle Daten werden in den entsprechenden Tag des Jahres umgerechnet. Das kann ich machen.
- Dann muss verglichen werden wie die Abrechnungsperiode liegt.
Ist der Beginn größer als Tag1 (Saisonbeginn1) und größer als Tag 2 (Saisonbeginn2) aber kleiner als Tag3 (Saisonbeginn3), dann gilt gilt der entsprechende Preis. der Saison 2 für den Beginn der Abrechnung.

- Danach muss der Endtermin genauso gecheckt werden.

- Sind beide Daten innerhalb der gleichen Saison dann nur Anzahl Tage mal Preis.

- Liegen Anfang und Ende der Berechnung in unterschiedlichen Saisonzeiten, dann [Differenz des Anfangsdatums zum Ende der ersten Saison mal Preis] plus [Anfangsdatum der darauffolgenden Saison bis Enddatum mal Preis]


Kompliziert? Find ich auch... :(
Vielleicht steigt jemand durch was ich meine und kann mir mit etwas Code aushelfen...
 
Zuletzt bearbeitet von einem Moderator:
Du könntest einen Array erstellen, indem du jeweils [Saison-Startdatum,Saison-Enddatum,Preis] speicherst(die Datumsangaben optimalerweise als Timestamp).
Erstelle weiterhin eine Variable für den Preis(Wert:0)

Start+Enddatum des Berechnungszeitraum rechne ebenfalls in Timestamps um.

Dann musst gehe in einer Schleife die Tage des Berechnungsdatums durch(inkrementieren jeweils um 86400000...das sind die ms pro Tag).
In der Schleife prüfe, zu welcher Saison(Element des Eingangs erstellten Arrays) der jeweilige Tag passt... wenn es passt, addiere den Preis zu der Variablen für den Preis dazu.
 
Zurück