Timer saying when it's ending

2

How can I make the timer notify when it's running out of Console? It cleans the console every 1 hour

Example:

> Falta 3 segundos para o terminar
> Falta 2 segundos para o terminar
> Falta 1 segundos para o terminar

Timer:

private static void Timer(Object o)
        {
            Console.Clear();
            GC.Collect();
        }

Timer t = new Timer(Timer, null, 0, 3600000);
    
asked by anonymous 13.03.2018 / 16:09

2 answers

3

The interval of timer has to be 1 second, because every second it will check if it is time to clear the console, or if it is

13.03.2018 / 17:54
0

You could do the following too, maybe it's not the best but it works:

class Program
    {
        static void Main(string[] args)
        {
            var tempoDuracao = 5; // Em segundos se por 3600 se torna uma hora e assim por diante
            var cronometro = TimeSpan.FromSeconds(tempoDuracao);

            while (tempoDuracao != 0)
            {
                if (tempoDuracao > 3)
                {
                    Console.Clear();
                    Console.WriteLine(cronometro);
                }
                else
                {
                    if (tempoDuracao == 3)
                        Console.Clear();

                    if (tempoDuracao == 1)
                        Console.WriteLine("Falta " + cronometro.Seconds + " segundo para o programa terminar");
                    else
                        Console.WriteLine("Faltam " + cronometro.Seconds + " segundos para o programa terminar");
                }

                cronometro = cronometro.Subtract(TimeSpan.FromSeconds(1));
                Thread.Sleep(1000);
                tempoDuracao--;
            }
        }
    }
    
13.03.2018 / 18:31