Ejemplo n.º 1
0
 private void HorarioInicial_Unfocused(object sender, FocusEventArgs e)
 {
     lblHorarioInicial.Text = ((TimePicker)sender).Time.ToString(@"hh\:mm");
     HorarioFinal.Focus();
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //Digitar uma horario (substring ou não) e avaliar todos os possiveis problemas que poderá acontecer com ela
            string HorarioInicial, HorarioFinal;
            int    HoraInicial, MinutoInicial, SegundoInicial;
            int    HoraFinal, MinutoFinal, SegundoFinal;
            int    HoraTotal, MinutoTotal, SegundoTotal, HorarioTotal;

            Console.WriteLine("Programa para saber quantas vezes o sinal muda de cor no mesmo dia\n");
            while (true)            //Loop infinito para receber o horario inicial e os possiveis erros que poderão acontecer
            {                       //Caso dê erro, voltará para pedir o horário novamente
                while (true)        //Loop infinito para o try catch, caso o usuário digite uma letra
                {
                    Console.WriteLine("Digite o horário INICIAL o no formato HH:MM:SS (separe por dois pontos)");
                    HorarioInicial = Console.ReadLine();
                    try                     //Tenta realizar essas conversões
                    {
                        HoraInicial    = Convert.ToInt32(HorarioInicial.Substring(0, 2));
                        MinutoInicial  = Convert.ToInt32(HorarioInicial.Substring(3, 2));
                        SegundoInicial = Convert.ToInt32(HorarioInicial.Substring(6, 2));
                    }
                    catch                     //Caso dê erro nas conversões, aparecerá uma mensagem e forçará a repetição do while
                    {
                        Console.WriteLine("Digite um horário válido");
                        continue;              //Força a repetição do while
                    }
                    break;                     //Só vem para o break se ocorrer tudo certo no try
                }

                if (HorarioInicial.Length != 8)                 //Se os caracteres digitados forem diferentes de 8
                {
                    Console.WriteLine("Digite uma hora válida");
                    continue;                                                        //Força repetição do primeiro while (o while de fora)
                }
                else if (HoraInicial < 0 || MinutoInicial < 0 || SegundoInicial < 0) //Se a hora, minuto ou segundo inicial for menor que zero,
                {                                                                    //Dará erro por não existir horario abaixo de zero
                    Console.WriteLine("Digite um horário válido");
                    continue;
                }
                else if (HoraInicial > 23 || MinutoInicial > 59 || SegundoInicial > 59)                //Se a hora for maior que 23, minuto ou segundo maior que 59
                {                                                                                      //Dará erro por não existir horas acima de 23 ou minuto/segundo acima de 59
                    Console.WriteLine("Digite um horário válido");
                    continue;
                }
                else                 //Caso o if e else if dê falso, significa que não há nada de errado na hora informada
                {
                    break;           //Quebra o while para poder continuar o código e receber o horário final
                }
            }

            while (true)             //Loop infinito para receber o horario final e os possiveis erros que poderão acontecer
            {                        //Caso dê erro, voltará para pedir o horário novamente
                while (true)         //Loop infinito para o try catch, caso o usuário digite uma letra
                {
                    Console.WriteLine("Digite o horário FINAL no formato HH:MM:SS (separe por dois pontos)");
                    HorarioFinal = Console.ReadLine();
                    try                     //Tenta realizar essas conversões
                    {
                        HoraFinal    = Convert.ToInt32(HorarioFinal.Substring(0, 2));
                        MinutoFinal  = Convert.ToInt32(HorarioFinal.Substring(3, 2));
                        SegundoFinal = Convert.ToInt32(HorarioFinal.Substring(6, 2));
                    }
                    catch                     //Caso dê erro nas conversões, aparecerá uma mensagem e forçará a repetição do while
                    {
                        Console.WriteLine("Digita um horário válido ae bicho");
                        continue;              //Força a repetição do while
                    }
                    break;                     //Só vem para o break se ocorrer tudo certo no try
                }

                if (HorarioFinal.Length != 8)                 //Se os caracteres digitados forem diferentes de 8
                {
                    Console.WriteLine("Digite uma hora válida");
                    continue;                     //Força repetição do primeiro while (o while de fora)
                }

                else if (HoraFinal < 0 || MinutoFinal < 0 || SegundoFinal < 0)                 //Mesma lógica do horario inicial
                {
                    Console.WriteLine("Digite uma horario válida");
                    continue;
                }
                else if (HoraFinal > 23 || MinutoFinal > 59 || SegundoFinal > 59)                 //Mesma lógica do horario inicial
                {
                    Console.WriteLine("Digite um horário válido");
                    continue;
                }
                else
                {
                    if (HoraInicial > HoraFinal)                     //Se a hora inicial for maior que a final, a variação deria negativo, ou seja, daria errado
                    {
                        Console.WriteLine("Digite uma horario do mesmo dia");
                        break;
                    }
                    else
                    {
                        HoraTotal    = (HoraFinal - HoraInicial) * 3600;                                  //Variação e Conversão de horas para segundos
                        MinutoTotal  = (MinutoFinal - MinutoInicial) * 60;                                //Variação e Conversão de minutos para segundos
                        SegundoTotal = (SegundoFinal - SegundoInicial);                                   //Variação de segundos
                        HorarioTotal = (HoraTotal + MinutoTotal + SegundoTotal) / 40;                     //Soma tudo e divide por 40 para saber quantas vezes o sinal muda de cor

                        Console.WriteLine("A quantidade de vezes que mudou foi {0} vezes", HorarioTotal); //Output que sairá para o usuário
                        break;                                                                            //Termina o código
                    }
                }
            }
        }