Akcja gdy czas jest inny

0

Witam. Robię aktualnie taki player, który w godzinie powiedzmy 7:45 do 7:50 będzie grał, później się wyłączy i zacznie grać dopiero o 8:15 do 8:20. Nie mam kompletnie pomysłu jak to zrobić, robię jakieś warunki, lecz nie wychodzi. Chciałbym aby timer chodził co 1 sekunde i sprawdzał godzine dlatego też nie wiem jak to zrobić :/. Mógłby ktoś podsunąć jakiś pomysł z warunkiem? zrobiłem coś takiego. Wciskam przycisk start, w przycisku start włącza się timer1, który ma w sobie

            if (DateTime.Now.Hour == 22 && (DateTime.Now.Minute >= 37 && DateTime.Now.Minute <= 40))
            {
                timer1.enabled = true;
                losowanie();
            }

            else if (DateTime.Now.Hour == 00 && (DateTime.Now.Minute >= 12 && DateTime.Now.Minute <= 15))
            {
                timer1.enabled = true;
                losowanie();
            }

Jeżeli będzie między godziną 22:37 a 22:40 to wykona się funkcja losowanie, która odpali timer2 (timer1 aktualnie nie działa), w którym zawarte jest coś takiego

            if ((DateTime.Now.Hour == 7 && DateTime.Now.Minute >= 45) && (DateTime.Now.Hour == 8 && DateTime.Now.Minute >= 15 && DateTime.Now.Minute <= 20))
            {
                axWindowsMediaPlayer1.close();
                timer1.enabled = true;
                timer2.enabled = false;
            }

            else if (DateTime.Now.Hour == 9 && DateTime.Now.Minute >= 40 && wlacz2 == 0)
            {
                axWindowsMediaPlayer1.close();
                timer1.enabled = true;
                timer2.enabled = false;
            }

I tutaj jest problem, kombinowałem trochę z tym warunkiem, lecz widać wyszły jakieś głupoty. Nie potrafię tego ogarnąć, gdy czas jest różny od 7:45 - 7:50, 8:20 - 8:25 (jeszcze parę innych godzin) timer2 się wyłącza, włącza się timer1, który sprawdza czy jest godzina przypuśćmy 8:20 - 8:25, jeżeli tak to gra, jeżeli godzina 8:26 to timer2 znów się wyłącza, timer1 się włącza i szuka np. godziny 9:32 - 9:35. Mógłby ktoś mi w tym pomóc? Jak zatrzymać player, gdy czas jest różny od podanych godzin? Wystarczy jeden warunek do zatrzymania czy przypuśćmy po jednym do każdej godziny? Z góry dziękuje i pozdrawiam

0

Potrzebujesz czegoś mniej więcej takiego jako timer: http://msdn.microsoft.com/pl-pl/library/system.windows.threading.dispatchertimer(v=vs.110).aspx
Potem pewnie będziesz chciał wykorzystać zdarzenie timer.Tick, do którego wrzucisz swoją metodę która będziesz już korzystała z konkretnej logiki.

PS: Te twoje warunki w if'ach nie wyglądają zbyt elegancko.

0

Odnośnie tego dispatcherTimera nie wiele się dowiedziałem, jak go użyć i dokładnie o co w nim chodzi.

Nie da się ułożyc warunku np. jeżeli czas teraz != niż 8-20 - 8-25 && 9-10-9:15 &&... to wtedy coś się dzieje itd.?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.