none
Ajuda, data fixa para agendador RRS feed

  • Pergunta

  • Pessoal, estou desenvolvendo um agendador, neste irei agendar as aulas que estarão disponíveis ex:

    Aula de português, toda quinta as 14:00.

    Mas não sei como fazer essa parte de "Toda quinta", uma data fixa...

    Como eu devo prosseguir utilizando C#? Obrigado.


    • Editado KvnAllen sábado, 13 de abril de 2013 02:40 adição de informações
    sábado, 13 de abril de 2013 02:39

Respostas

  • Aqui estão fazendo algo parecido:
    http://stackoverflow.com/questions/7928083/to-get-the-mondays-to-saturdays-in-the-current-month

    Ou pode usar a seguinte lógica: Primeiro pegue o dia da semana atual (ele vai retornar em inglês, tipo: saturday, monday e etc ):

     string diaExtenso = DateTime.Now.DayOfWeek.ToString();

    Você terá outra variável para o dia que o cara quer agendar, correto ? Tipo ele quer agendar para toda quinta e o dia da semana é segunda.
    Você vai pegar o dia da semana atual:

    int dia = DateTime.Now.Day;

    E somar os dias que faltam para chegar no dia que ele quer. Ex: Nesse caso é segunda, como ele quer começar agendar na quinta, você vai somar 3 dias a variável dia da semana:

    dia += 3;

    Agora é fácil. Você faz um for partindo desse dia e somando +7 dias (lembrando de parar o for se o dia for maior que 31) assim você vai descobrir o número dos dias do mês que são quinta-feira. Ex: o Primeiro dia seria 12, vai somar +7 = 19, depois +7 = 26, depois mais +7 = 33 (o for não vai entrar). O for seria tipo assim:

    for (int dia; dia <= 31; dia += 7)
                {
                    //aqui você vai salvando o dia aonde quiser
                }

    Bem, claro que só te passei a lógica geral, você vai precisar de alguns "IF"s e "Case"s para fazer o resto. Também terá que validar se o dia encontrado existe no mês. Por exemplo dia 31 pra o mês de Abril não existe.

    Espero que ajude, e se ajudar marque como resposta.
    Abraço


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh



    • Sugerido como Resposta EvandroAS sábado, 13 de abril de 2013 12:42
    • Editado EvandroAS sábado, 13 de abril de 2013 12:47
    • Marcado como Resposta KvnAllen terça-feira, 16 de abril de 2013 10:34
    sábado, 13 de abril de 2013 12:42

Todas as Respostas

  • Aqui estão fazendo algo parecido:
    http://stackoverflow.com/questions/7928083/to-get-the-mondays-to-saturdays-in-the-current-month

    Ou pode usar a seguinte lógica: Primeiro pegue o dia da semana atual (ele vai retornar em inglês, tipo: saturday, monday e etc ):

     string diaExtenso = DateTime.Now.DayOfWeek.ToString();

    Você terá outra variável para o dia que o cara quer agendar, correto ? Tipo ele quer agendar para toda quinta e o dia da semana é segunda.
    Você vai pegar o dia da semana atual:

    int dia = DateTime.Now.Day;

    E somar os dias que faltam para chegar no dia que ele quer. Ex: Nesse caso é segunda, como ele quer começar agendar na quinta, você vai somar 3 dias a variável dia da semana:

    dia += 3;

    Agora é fácil. Você faz um for partindo desse dia e somando +7 dias (lembrando de parar o for se o dia for maior que 31) assim você vai descobrir o número dos dias do mês que são quinta-feira. Ex: o Primeiro dia seria 12, vai somar +7 = 19, depois +7 = 26, depois mais +7 = 33 (o for não vai entrar). O for seria tipo assim:

    for (int dia; dia <= 31; dia += 7)
                {
                    //aqui você vai salvando o dia aonde quiser
                }

    Bem, claro que só te passei a lógica geral, você vai precisar de alguns "IF"s e "Case"s para fazer o resto. Também terá que validar se o dia encontrado existe no mês. Por exemplo dia 31 pra o mês de Abril não existe.

    Espero que ajude, e se ajudar marque como resposta.
    Abraço


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh



    • Sugerido como Resposta EvandroAS sábado, 13 de abril de 2013 12:42
    • Editado EvandroAS sábado, 13 de abril de 2013 12:47
    • Marcado como Resposta KvnAllen terça-feira, 16 de abril de 2013 10:34
    sábado, 13 de abril de 2013 12:42
  • Sim, eu já imaginava que seria assim, só não sabia que esse seria o modo "mais correto", no caso as datas são infinitas... Então, eu teria que salvar no banco várias datas ? D:
    segunda-feira, 15 de abril de 2013 17:04
  • Sim, eu já imaginava que seria assim, só não sabia que esse seria o modo "mais correto", no caso as datas são infinitas... Então, eu teria que salvar no banco várias datas ? D:

    Acho que o modo mais fácil seria sim salvar a data várias vezes, Kevin. E já que o post ajudou, peço que clique em "marcar como resposta". Assim outros membros que venham a ter dúvidas parecidas podem encontrar essa postagem. :)

    Abraços


    Evandro Aguiar
    http://agenciawebpro.com.br

    Farei o possível, para ajudar. Caso eu consiga, marque minha resposta como útil e me faça feliz. :) hauhauhauhauh

    • Sugerido como Resposta EvandroAS segunda-feira, 15 de abril de 2013 20:28
    segunda-feira, 15 de abril de 2013 20:28
  • Claro, marco sim :)

    Obrigado pela ajuda!

    terça-feira, 16 de abril de 2013 10:33