Zadejte hledaný výraz...

Výpočet datumu doručení (mimo víkendy a státní svátky)

Taps
verified
rating uzivatele
(118 hodnocení)
17. 5. 2017 22:00:41
Zdravím, může mi prosím někdo poradit jak jednoduše a optimalizovaně vytvořit skript pro výpočet datumu doručení ( bez víkendů a státních svátků). Budu mít např. 3 dopravce a k aktuálnímu datumu budu příčítat x dní. Děkuji
17. 5. 2017 22:00:41
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279435
hm
verified
rating uzivatele
(20 hodnocení)
17. 5. 2017 22:05:23
Jenom uplne narychlo me napadlo vytvroti si seznam svatku a nasledne pricitat smyckou po dni a kontrolovat diky date() ci DateTime->format() jestli je den vikend ci svatek (svatek jen jednoduchym porovnanim se seznamem svatku) a pokud ano, tak ho preskocit... To by melo byt rychle (protoze se pricitaji jen jednotky dni) a pomerne spolehlive...
17. 5. 2017 22:05:23
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279434
jako začátek lze použít strtotime, který umí přeskočit víkendy:
a pak pokračovat testem proti seznamu svátků, jak psal Aleš. Velikonoce lze ověřit pomocí funkce easter_date.
17. 5. 2017 22:18:06
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279433
Taps
verified
rating uzivatele
(118 hodnocení)
17. 5. 2017 22:20:24
Pomocí smyčky je nutné projít celý rok?
---------- Příspěvek doplněn 17.05.2017 v 22:22 ----------
zkoušel jsem něco takového, ale nevím jak tam implementovat počet dní
17. 5. 2017 22:20:24
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279432
hm
verified
rating uzivatele
(20 hodnocení)
17. 5. 2017 22:43:25
$nonWorkingDays = ;
$daysToAdd = 10; //working days to add
$run=0; //counter of added days
$date = new DateTime(); //main date object
$addingInterval = new DateInterval('P1D'); // 1day interval for adding
do{
$date->add($addingInterval); // add that one day
if(in_array($date->format('w'),) || in_array($date->format('m-d'),$nonWorkingDays)){
continue; // day is weekend or non working day, skip it
}
$run++; // day is working day, add it
} while($run < $daysToAdd);
echo $date->format('Y-m-d'); // tadaaa
takhle by to slo? preskoci to kazdy definovany svatek a kazdy vikendovy den, takze pricteni 10 dni znamena pricteni deseti pracovnich dni...
17. 5. 2017 22:43:25
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279431
Taps
verified
rating uzivatele
(118 hodnocení)
18. 5. 2017 14:33:12
Moc děkuji
18. 5. 2017 14:33:12
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279430
Napsal Aleš Jiříček;1386716
$nonWorkingDays = ;
Tohle nezahrnuje Velikonoce, jelikož jsou to pohyblivé svátky. Ty je tam třeba dopočítat – např. pomocí mojí utility :-).
13. 6. 2017 13:58:23
https://webtrh.cz/diskuse/vypocet-datumu-doruceni-mimo-vikendy-a-statni-svatky#reply1279429
Pro odpověď se přihlašte.
Přihlásit