Usuário com melhor resposta
Ajuda, data fixa para agendador

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
Respostas
-
Aqui estão fazendo algo parecido:
http://stackoverflow.com/questions/7928083/to-get-the-mondays-to-saturdays-in-the-current-monthOu 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
Todas as Respostas
-
Aqui estão fazendo algo parecido:
http://stackoverflow.com/questions/7928083/to-get-the-mondays-to-saturdays-in-the-current-monthOu 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
-
-
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
-