C# Uruchomienie i wyłączenie programu w zależności od dnia i godziny

0

Witam wszystkich.
Raczkuję dopiero w tematyce C#
Mam pewien problem.
Potrzebuję zrobić w programie by o pewnej godzinie uruchomiło mi jakąś aplikację lub też wyświetliło powiadomienie w zależności od dnia Tygodnia.
Tzn.

Od np. Poniedziałku do Soboty(włącznie) o godzinie 7:00 uruchom program
o godzinie 15:00 Wyłącz program

Niedziela
o godzinie 10:00 Włącz a o 17:00 Wyłącz

Kolejna sprawa np. w nowy rok lub też w wigilię chcę np. inne godziny itp.
Ktoś mi napiszę że mogę to zrobić w Harmonogramie zadań pewno że mogę !
Ale gdy uruchomię kompa w poniedziałek po godzinie 7 to już nie uruchomi mi tego czego oczekuję.
Po zatem nie mogę sobie obliczyć kiedy wypada dzień wolny od pracy, czy też np. jakieś święto..
jak się panowie i panie do tego zabrać ??

Operacje na dacie są dla mnie obce jeśli chodzi o C#

Sposób poniżej nie jest zbyt pomysłowy, na pewno można to jakoś rozwiązać prościej tylko jak ??

DateTime teraz = new DateTime();
TimeSpan wlacz = new TimeSpan(7,0,0);
TimeSpan wylacz = new TimeSpan(15,0,0);

teraz = DateTime.now;
if (teraz.Hour == wlacz.Hours && teraz.Minute == wlacz.Minutes && teraz.Second == wlacz.Seconds)
{

} 

Proszę serdecznie o nakierowanie mnie na jakieś sensowne rozwiązanie
ewentualnie czym mam się zainteresować.
Nie zależy mi na jakimś obliczaniu czasu kiedy za ile itp.
Chce o danej godzinie coś włączyć zależnie od dnia i wyłączyć.
Harmonogram niestety nie spełnia mi tego zadania, dlatego wolę coś samemu napisać a przy tym się zawsze czegoś nowego nauczę.

Dziękuję serdecznie za pomoc.
Pozdrawiam.

1

Ten przykład kodu, który podałeś to jest moim zdaniem kwestia wtórna.
Ja bym zaczął od tego, w jaki sposób w ogóle tę kontrolę uruchomić.

Wspominasz, że nie chcesz korzystać z harmonogramu zadań, ale nie podajesz żadnej alternatywy. Czy to oznacza, że jeszcze nie wiesz, jak to zrobić, czy masz to rozkminione i po prostu uznałeś, że nie ma sensu o tym pisać?

0

Uznałem że nie ma sensu pisać podstaw..
Aplikacja będzie odpalana podczas startu i będzie pracowała cały czas w tle.
Pętla co powiedzmy kilka sekund na Timerze w zupełności wystarczy.
Nawet jeśli miała by być co 1 sekundę to obciążenie dla procesora żadne..
Bardziej zależy mi na rozwiązaniu jak sprawdzać czy aktualna godzina jest w przedziale czasowym i np. uruchamiać lub jest po przedziale czasowych i np. ubić proces przysłowiowo pisząc.

Mam nadzieje że wytłumaczyłem to teraz lepiej.

Problem z Harmonogramem zaczyna się wtedy jeśli uruchomię komputer po godzinie zadanej to aplikacja mi się nie uruchomi !, a autostart że musiał bym ją wyłączać, czyli rozwiązanie bez sensu.
Nie interesują mnie programy trzecie.
Jak zbudować aplikację wiem i nie tu problem - po prostu nie bawiłem się nigdy datami w aplikacji i niby prozaiczna sprawa a nie wiem jak rozwiązać ją najlepiej.

Zasada działania.

  1. Aplikacja uruchamiana podczas startu komputera
  2. W osobnym wątku lub na timerze sprawdzanie no właśnie i tu problem
  • ustawiam jakiś czas, jakiś dzień tygodnia itp. czy też datę i aplikację uruchamiam tylko raz nawet jeśli miał bym 10 razy kompa w tym czasie z rebotować to aplikacja dba by program pracował lub też nie.
    Pytanie jak się za to zabrać.
    Czy zostaje mi warunek i mniejsze większa itp. czy jest jakaś funkcja , która by się nadawała do użycia..

Dziękuję za sugestie.

2

jeżeli używasz/planujesz korzystać z .net'a to rzuć okiem na takie coś:

https://msdn.microsoft.com/pl-pl/library/system.timespan(v=vs.110).aspx oraz

https://stackoverflow.com/questions/1504494/find-if-current-time-falls-in-a-time-range

0
cerrato napisał(a):

Dzięki o coś takiego mi chodziło, kombinowałem z mnożeniem itp. a tu tak prosto można to zrealizować.

Pozdrawiam Serdecznie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1