Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Jak zrobić aby program wyświetlał dany komunikat o konkretnej godzinie


Rekomendowane odpowiedzi

Opublikowano
DateTime Czas = DateTime.Now;
if(Czas.Hour==18)
{
// kod
}

^ Ten kod nie będzie działał, Zaraz wymyśle nowy

 

Tutaj kilka odpowiedzi które wygooglowałem

 

Sprawdzasz ile milisekund jest od obecnej godziny do wywołania procedury. Jeśli jest mniejsza od zakresu Interval w Timerze, ustawisz wywołanie Timera na ten czas. Timer po upływie czasu powinien się wyłączyć oraz wywołać procedurę. Jeśli czas jest większy od zakresu Interval (wątpię), ustawiasz największy możliwy Interval, aby po jego upływie znów zacząć całość od początku.


Skoro chcesz uruchomić jakiś proces o godzinie 18:00 to sprawdzasz jaka jest godzina, np 00:00 a następnie ustawiasz żeby timer odliczył ci brakujący czas do startu procesu, czyli w tym wypadku będzie to 18 godzin.

1149730ee7ddaf7UVMV7ZB.gif

Opublikowano

@Drenek

Po co kombinować? 

 

Autorze, dodaj po prostu Task ustawiony na godzinę 18. Zależy czy chcesz do tego użyć języka programowania czy nie. Jak potrzebujesz tylko wyświetlić wiadomość to w Task Schedulerze dodajesz nowe zadanie na godzinę 18, w akcji ustawiasz wyświetl wiadomość i gotowe. To samo możesz zrobić w C#, zależy co dokładnie chcesz zrobić.

Opublikowano

Więc śpieszę z wyjaśnieniami. Otóż od kilku dni staram się zrozumieć klasę "Speech". Tworzę program coś w stylu "Cortana" (Windows 10) i chcę zrobić takie coś: Jak uruchomię program to program analizuje która jest godzina i mówi np. o 12;00 "Good morning" itd. 

Practice Makes PerfectJulie James


 

Opublikowano

String s = DateTime.Now.ToString("HH:mm:ss");
if (s.Contains("22:48"))
{
   //jakiś kod
}
nie wiem czy się przyda :P
Nic nie jest bezużyteczne ;)

Practice Makes PerfectJulie James


 

Opublikowano
DateTime Czas = DateTime.Now;

if(Czas.Hour<=6 && Czas.Hour>12)
{
// Rano
}

if(Czas.Hour>=12&&Czas.Hour<18)
{
// Popołudnie
}

if(Czas.Hour>=18 && Czas.Hour<6)
{
// Wieczór
}

Myśleć, że to będzie rozwiązanie

1149730ee7ddaf7UVMV7ZB.gif

Opublikowano

DateTime Czas = DateTime.Now;

if(Czas.Hour<=6 && Czas.Hour>12)
{
// Rano
}

if(Czas.Hour>=12&&Czas.Hour<18)
{
// Popołudnie
}

if(Czas.Hour>=18 && Czas.Hour<6)
{
// Wieczór
}

Myśleć, że to będzie rozwiązanie
Też tak myślę

Practice Makes PerfectJulie James


 

Opublikowano

Możesz sobie zautomatyzować trochę pracę i stworzyć speakera, który sam będzie sprawdzać co trzeba powiedzieć.

Proszę bardzo, przykładowy speaker, najprostszy do rozbudowy:

class Program
    {
        static void Main(string[] args)
        {
            IOperation speaker = new Speaker();
            speaker.Proceed();

            Console.ReadKey();
        }
    }

    internal interface IOperation
    {
        void Proceed();
    }

    internal interface ISpeak
    {
        ISpeakTime Time { get; set; }
        string Text { get; set; }
    }

    internal interface ISpeakTime
    {
        int StartAt { get; set; }
        int EndAt { get; set; }
    }

    internal class Speak : ISpeak
    {
        public string Text { get; set; }
        public ISpeakTime Time { get; set; }
    }

    internal class SpeakTime : ISpeakTime
    {
        public int EndAt { get; set; }
        public int StartAt { get; set; }
    }

    internal class Speaker : IOperation
    {
        public void Proceed()
        {
            ISpeak actualSpeak = SpeakFactory.GetSpeakers().ToList().Where(x => x.Time.StartAt <= DateTime.Now.Hour && x.Time.EndAt > DateTime.Now.Hour).FirstOrDefault();
            if(actualSpeak != null)
            {
                Console.WriteLine(actualSpeak.Text);
            }
        }
    }

    internal static class SpeakFactory
    {
        private static List<ISpeak> speakers = new List<ISpeak>()
        {
            new Speak { Time = SpeakTimeFactory.OnSunrise(), Text = "Good morning!" },
            new Speak { Time = SpeakTimeFactory.OnDay(), Text = "Have a good day!" },
            new Speak { Time = SpeakTimeFactory.OnAfternoon(), Text = "Good afternoon!" },
            new Speak { Time = SpeakTimeFactory.OnNigth(), Text = "Good night!" }
        };

        public static IEnumerable<ISpeak> GetSpeakers()
        {
            return speakers;
        }

    }

    internal static class SpeakTimeFactory
    {
        public static ISpeakTime OnSunrise() { return new SpeakTime { StartAt = 8, EndAt = 12 }; }
        public static ISpeakTime OnDay() { return new SpeakTime { StartAt = 12, EndAt = 18 }; }
        public static ISpeakTime OnAfternoon() { return new SpeakTime { StartAt = 18, EndAt = 24 }; }
        public static ISpeakTime OnNigth() { return new SpeakTime { StartAt = 24, EndAt = 8 }; }
    }

Nie dodawałem żadnych komentarzy do kodu, myślę że zrozumiały. Jakby co pytaj.

~Aye!

Opublikowano

Możesz sobie zautomatyzować trochę pracę i stworzyć speakera, który sam będzie sprawdzać co trzeba powiedzieć.

Proszę bardzo, przykładowy speaker, najprostszy do rozbudowy:

KOD bla bla.. 

Nie dodawałem żadnych komentarzy do kodu, myślę że zrozumiały. Jakby co pytaj.

Dał byś radę zmienić ten kod na okienkowy, a nie konsolowy ? :). Oczywiście Like dla ciebie 

Practice Makes PerfectJulie James


 

Opublikowano

Przecież wystarczy zmienić linię z wypisywaniem stringa do consoli na cokolwiek, co akurat potrzebujesz.

 

Jeśli używasz WPF, to zrób sobie MVVM i ustaw wynik speakera pod konkretny binding.

Jeśli używasz WinForms i nie ma tam odpowiednika MVVM (nie znam WinForms w stopniu żadnym powyżej podstaw totalnych), to przerób sobie Speakera tak, by nie wyświetlał sam wartości, tylko Ci są zwracał, a gdzie to sobie przypiszesz to już Twoja kwestia.

~Aye!

Opublikowano

dostanę warna, ale c**j, trudno

 

ty tak k***a serio? przestań pisać tematy do każdego pytania jakie sobie zadajesz, zacznij używać inwencji twórczej i mózgu, czytać dokumentację klas i pisać trochę swojego kodu bo zadajesz już tak idiotycznie łopatologiczne pytania że jak na to patrzę to mnie c**j trafia.

846331404756772371599.jpeg
Opublikowano

dostanę warna, ale c**j, trudno

 

ty tak k***a serio? przestań pisać tematy do każdego pytania jakie sobie zadajesz, zacznij używać inwencji twórczej i mózgu, czytać dokumentację klas i pisać trochę swojego kodu bo zadajesz już tak idiotycznie łopatologiczne pytania że jak na to patrzę to mnie c**j trafia.

Masz rację, ale jak czegoś nie wiem / nie rozumiem to chyba od tego jest forum, żeby pytać. ;) 

Practice Makes PerfectJulie James


 

Opublikowano

 

dostanę warna, ale c**j, trudno

 

ty tak k***a serio? przestań pisać tematy do każdego pytania jakie sobie zadajesz, zacznij używać inwencji twórczej i mózgu, czytać dokumentację klas i pisać trochę swojego kodu bo zadajesz już tak idiotycznie łopatologiczne pytania że jak na to patrzę to mnie c**j trafia.

Masz rację, ale jak czegoś nie wiem / nie rozumiem to chyba od tego jest forum, żeby pytać. ;)

 

 

Pewnie też zgarnę za to warna, ale odpowiem wprost - kilka Twoich tematów wygląda tak, że pytasz o totalną oczywistość i ludzie podsyłają Ci link który Google by Ci zwrócił na pierwszej stronie.

 

Marnujesz swój czas (szybciej wpisać pytanie w Google), i również nasz. No i sprawiasz wrażenie typa co nie umie w Google i nie ma za grosz własnej inwencji, skoro o każdą pierdołę pytasz ludzi.

~Aye!

Opublikowano

No dobra, to teraz policz sobie co ci szybciej wyjdzie

a) użycie mózgu

B) użycie googla

c) napisanie śmieciowego (bo 99% osób skorzysta z dwóch pierwszych opcji) tematu na forum i czekanie aż ktoś odpisze (albo i nie)

 

//WINCEJ WARNUF

846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...