Προς το περιεχόμενο

Βοήθεια στον υπολογισμός ημερών σε μια περίοδο


dbouraza

Προτεινόμενες αναρτήσεις

Καλησπέρα σε όλους. Επειδή έχω κολλήσει και δεν μπορώ να βρώ άκρη αν είναι ευκολο να με βοηθήσει κάποιος.

Ας πούμε ότι έχω αυτές τι περιόδους 

1. 01/03 - 27/05 => €70,00 τη μέρα
2. 28/05 - 01/07 => €60,00 τη μέρα
3. 27/08 - 23/09 => €80,00 τη μέρα
4. 24/09 - 30/11 => €40,00 τη μέρα

και κάποιος ας πούμε ζητάει τιμή από 29/05 έως 27/09 (δηλαδή καλύπτει τις 2, 3, 4). Πως μπορώ να υπολογίσω ποιες μέρες αντιστοιχούν σε κάθε περίοδο και να τις πολαπλασιάσω με τις αντίστοιχες τιμές ωστε να βγεί το τελικό ποσό?

Σας ευχαριστώ πολύ

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Εχω καιρό να γράψω σε php και έχω μπερδευτει. Κατι δεν κάνω σωστα. Οταν δοθούν οι ημερομηνιές από μια φορμα, βρίσκω ποιες περιόδους καλύπτει.

Αλλα δεν μπορώ να συγκρίνω και να βρω οτι στις περίοδους αντιστοιχούν τόσες μέρες στον 5ο μήνα, τόσες στον 7ο και οτι ανήκει στη συγκεκριμένη τιμή κ.λ.π. 

 

Επεξ/σία από dbouraza
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Ένας εύκολος τρόπος είναι να παίξεις με CarbonPeriod πχ

$period = CarbonPeriod::create('2022-06-10', '2022-06-30');

$booking = CarbonPeriod::create('2022-06-15', '2022-07-04');


$end = min($period->calculateEnd(), $booking->calculateEnd());
$start = max($period->getStartDate(), $booking->getStartDate());

echo $start->diffInDays($end);

edit: μπορείς να παίξεις με το carbon και online για να δοκιμάσεις τον κώδικα

Επεξ/σία από WebDevGr
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε γενικές γραμμές βρίσκεις τις μέρες συνολικά και τις καταναλώνεις στις περιόδους Το dateTime της php https://www.php.net/manual/en/book.datetime.php έχει ότι χρειάζεσαι . Χρειάζεσαι και αναφορές λαθών γιατί οι περίοδοί σου δεν είναι συνεχόμενες, η δεύτερη πχ τελειώνει 01/07 και η επόμενη αρχίζει 27/8

 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έχω γράψει το ίδιο σε java. Μην πας να το υπολογίσεις "με το χέρι" . Θέλεις  οπωσδήποτε ένα lib  που θα σου μετράει τις ημέρες μόνο του (όπως το datetime) που αναφέρεται πιο πάνω. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...