Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

emannuelcampos

Problemas com horas e datas

Recommended Posts

Olá pessoal, leio esta fórum a bastante tempo, mas este é o meu primeiro post.

 

Embora seja um problema que envolve mais lógica do que ASP em si, preferi postar aqui porque o sistema está sendo desenvolvido em ASP.

 

É o seguinte:

 

- Estou escrevendo uma agenda, onde os usuários logados tem acesso à alimentação da agenda e os não logados apenas a visualizar.

- A agenda é bem simples, e consiste em cadastrar compromissos dos meus usuários, de forma que alguns usuários podem cadastrar compromissos de outros de acordo com as permissões.

 

Estou enfrentando o problema:

 

Quando o usuário inclui um compromisso, ele informa data e hora de início e hora do fim do compromisso, e forma que ele pode por exemplo declarar que o compromisso inicia-se às 8 da manhã e termina às 11 da manhã por exemplo.

 

Ocorre que quando o usuário tenta incluir outro compromisso eu preciso fazer a verificação de já existe algum compromisso na mesma data (que é fácil filtrar) e hora (mais complicado, aqui está o problema), vamos a um exemplo prático, tomando como base uma só data:

 

1. O usuário incluiu um compromisso de 8 da manhã às 11 da manhã.

2. Tentou incluir outro compromisso de 10 da manhã as 11 da manhã, o que fazer para conseguir a lógica para filtrar este tipo de problema?

 

Já pensei em uma solução, quando eu for dar o select, eu vou trazer todos os compromissos daquela data e para aquele usuário, e vou criar um array com os horários preenchidos daquele comprpomisso, por exemplo:

 

8 9 10 11 12 13

[ ][ ][ ][ ][ ][ ]

 

de forma que o array do compromisso que o usuário está tentado incluir (10 as 11) seja da seguinte forma:

 

8 9 10 11 12 13

[0][0][1][1][0][0]

 

e o do compromisso existente (8 as 11) tenha o seguinte aspecto:

 

8 9 10 11 12 13

[1][1][1][1][0][0]

 

e faria o varrimento dos arrays comparando-os com o primeiro a fim de saber se tem algum horário coinciente.

 

Eis o questionamento, existe outra forma mais simples de se fazer isso? Alguma lógica um pouco mais apurada que essa? OU métodos que realizem esses cálculos?

 

Grato a todos...

Grande abraço http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

 

E prazer em conhecê-los

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia fazer uma comparação do tipo: chamar os horários como disse, mas verificar se a hora de término que ele quer cadastrar é antes da hora de começo ou a hora de começo é depois da hora de término de todos os outros horários já agendados.

 

Por exemplo:

 

Horários já cadastrados: a=9:00 as a1=10:00, b=11:00 as b1=13:00

 

Horário que deseja cadastrar: c=10:00 as c1=12:00

 

 

if ((c>=a1 or c1<=a1) and (c>=b1 or c1<=b1))

response.write "Pode cadastrar"

else

response.write "Já existe um compromisso agendado no horário"

end if

 

qualque dúvida é só dizer! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.