Stránka 1 z 1

VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 14:18
od d1amond
Zdravím.

Dlouho jsem neměl dotaz:)
Řeším takovou věc. Mám zadané 2 termíny, např. 1.1.2013-1.2.2013, čas 14:30-15:30 a 1.1.2013-1.2.2013, čas 15:00-16:00. Potřebuji fcí ve VBA zjistit, zda je druhý čas kolizní nebo ne. Jakmile by bylo odlišné datum, kontrola není třeba.
Nevím jak jednoduše ošetřit všechny varianty - kolize počátku, konce, mezi.

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 14:44
od Poki
No urcite to nejak pujde, ale bude potreba to poradne vydefinovat. Nejlepsi by bylo poslat soubor s prikladem!!!!
Napr: Jak jsem zadane tyto hodnoty v bunkach (nebo je to hodnota ulozena v promenne VBA? - jak je ulozena)

1.1.2013-1.2.2013, čas 14:30-15:30 a 1.1.2013-1.2.2013, čas 15:00-16:00
Toto znamena, ze prvni termin je 1. a 2. od 14:30 do 15:30 (tedy dva dny po hodine?)
nebo je to myslene nejak jinak?

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 15:02
od d1amond
Vidíš, to jsem neupřesnil.
Je to rozmezí datumů od do. Jako den by mohl být pondělí - to už je jedno. Potřebuji, abych získal výstup s informací (0/1, true/fals?) v případě, že se jeden termín kříží s druhým. Poslední úrovní v kontrole je právě čas.
Napadlo mě, zda by nestačilo kontrolovat druhý počáteční a koncový čas fcí je mezi prvním časem od - do.

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 15:05
od Poki
a co takhle prilozit ten soubor, protoze ukazka je za tisic slov.
Na muj dotaz ohledne toho, kde a jakym zpusobem jsou data a casy ulozeny, jsem odpoved nedostal.

Nejlepsi by bylo mit soubor, kde by byl vzorovy pripad a preference, jak by melo vypada reseni...

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 15:08
od d1amond
https://www.dropbox.com/s/y19gdhxrp13zi ... cvicny.xls

V Module 3 je procedura pokus() která volá fci na stejném místě. Používám to k testování.

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 15:25
od Poki
asi jsem natvrdlej, ale ja to fakt nechapu - co kdybys pouzil dva priklady a na nich ukazal, kde je teda ta kolize a jak by mel vypadat vystup funkce...fakt nevim... ani s tim souborem, ktery jsi vubec nepopsal!

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 16:21
od guest
Klíčová slova pro Google: "interval overlap/intersect"

Mělo by to být následovně:

Intervaly mají průnik (meze včetně), pokud

(Start1 <= Konec2) AND (Start2 <= Konec1)

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 16:46
od d1amond
Tak nějak to mám, jen mi to přišlo moc jednoduché:)
Díky za tip. Zkusím ještě pohledat.

Re: VBA: kontrola termínu od-do (kolize)

Napsal: 18 zář 2013 20:16
od guest
U dvou intervalů je to takhle jednoduché.. ale u třech a víc by to bylo už asi o kombinatorice..