none
Problema ao gerar grade de horários!!! RRS feed

  • Pergunta

  • Tenho uma base de dados com dois horários, um inicial e outro final e mais uma coluna que contém o tamanho de um período em horas.

    EX: Hora Abertura: 09:00:00, Hora Fechamento: 12:00:00 , Tam Periodo: 01:00:00.

    O que quero fazer com esse período montar uma grade de horários possíveis em um gridview, como por exemplo:

    09:00:00 - 10:00:00

    10:00:00 -11:00:00

    11:00:00 - 12:00:00

    sábado, 16 de agosto de 2014 18:46

Respostas

  • Resolvi dessa forma, esta funcionando.

     switch (turno)
                {
                    case 2:
                        if (tam_periodo != null)
                        {
                            while (hora_abertura <= hora_fechamento)
                            {
                                if (hora_abertura >= hora_fechamento)
                                {
                                    break;
                                }
                                else
                                {
                                    p.HorasPossiveis = hora_abertura + " - " + (hora_abertura += tam_periodo);
                                    lstHorarios.Add(p);
                                }
                            }
                        }
                        break;
    
                    case 3:
                        if (tam_periodo != null)
                        {
                            while (hora_abertura <= hora_fechamento)
                            {
                                if (hora_abertura >= hora_fechamento)
                                {
                                    break;
                                }
                                else
                                {
                                    p.HorasPossiveis = hora_abertura + " - " + (hora_abertura += tam_periodo);
                                     lstHorarios.Add(p);                               
                                }
                            }
                        }
                        break;
                    default:
                        break;
                }

    • Marcado como Resposta Kainã quarta-feira, 20 de maio de 2015 19:46
    terça-feira, 19 de agosto de 2014 20:13

Todas as Respostas

  • Bom dia Kainã,

    você esta trabalhando com algum banco de dados junto?

    Att,


    Ricardo Cortes Microsoft Contingent Staff

    Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    segunda-feira, 18 de agosto de 2014 12:21
  • Sim. Utilizo MySql
    segunda-feira, 18 de agosto de 2014 13:29
  • Veja se te ajuda esse link:

    http://www.linhadecodigo.com.br/artigo/788/aspnet-20-explorando-o-gridview.aspx

    Tem o código completo do projeto.

    Fico no aguardo,

    Att,


    Ricardo Cortes Microsoft Contingent Staff

    Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.

    MSDN Community Support

    terça-feira, 19 de agosto de 2014 13:03
  • Obrigado pela dica, mas não é bem isso que preciso fazer. A parte de manipulação do gridview é tranquila, o problema em si é a geração dos horários. Mas obrigado por tentar ajudar.
    terça-feira, 19 de agosto de 2014 13:32
  • Obrigado pela dica, mas não é bem isso que preciso fazer. A parte de manipulação do gridview é tranquila, o problema em si é a geração dos horários. Mas obrigado por tentar ajudar.

     Olá Kainã,

     poderia exemplificar melhor o que deseja por exemplo seria do horario inicial as 8 o final as 12 vc ir montatando uma grade de horario no gridview como das 8 as 9, das 9 as 10 das 10 11.... ?

    terça-feira, 19 de agosto de 2014 13:43
  • Isso. É isso mesmo. Só que para isso tenho na tabela também uma coluna chamada tamanho período.

    Exemplo: tam_periodo = 01:00:00 ou pode ser tam_periodo = 01:30:00 e a partir desses horarios montar os mesmos que citou agora pouco. Podendo ser 8 as 9 ou das 8 as 9:30 dependendo do tamanho do período.

    terça-feira, 19 de agosto de 2014 14:05
  • Resolvi dessa forma, esta funcionando.

     switch (turno)
                {
                    case 2:
                        if (tam_periodo != null)
                        {
                            while (hora_abertura <= hora_fechamento)
                            {
                                if (hora_abertura >= hora_fechamento)
                                {
                                    break;
                                }
                                else
                                {
                                    p.HorasPossiveis = hora_abertura + " - " + (hora_abertura += tam_periodo);
                                    lstHorarios.Add(p);
                                }
                            }
                        }
                        break;
    
                    case 3:
                        if (tam_periodo != null)
                        {
                            while (hora_abertura <= hora_fechamento)
                            {
                                if (hora_abertura >= hora_fechamento)
                                {
                                    break;
                                }
                                else
                                {
                                    p.HorasPossiveis = hora_abertura + " - " + (hora_abertura += tam_periodo);
                                     lstHorarios.Add(p);                               
                                }
                            }
                        }
                        break;
                    default:
                        break;
                }

    • Marcado como Resposta Kainã quarta-feira, 20 de maio de 2015 19:46
    terça-feira, 19 de agosto de 2014 20:13
  • Olá Kainã,

     você pode também utilizar o método AddHours da classe DateTime veja exemplo nesse link !!


    quarta-feira, 20 de agosto de 2014 11:11