Creazione Gestione Apputamenti

domenica 02 settembre 2012 - 21.41
Tag Elenco Tags  VB.NET  |  Access (.mdb)

86Marco Profilo | Expert

Buonasera a tutti,
volevo solamente un consiglio su come sviluppare un semplicissimo software di inserimento appuntamenti.

In particolare, ovviamente, il programma deve riuscire a fare evitare che l'utente possa inserire diversi appuntamenti per la stessa ora/durata.

Mi date qualche consiglio su come implementare questa verifica?

Grazie a tutti!

Davide1986 Profilo | Junior Member

La prima cosa che mi viene in mente è creare un database che contiene le informazioni ( Data / Ora Inizio / Ora Termina/ Note ) . Già cosi sai cosa far apparire quando sei arrivato a X Data all'Ora X appare l'informazione memorizzata a Note.

Per la memorizzazione il nuovo orario e per verificare che non si accavalli mi viene in mente questa cosa :

I = (Ora Inizio memorizzato Database )
F = (Ora Fine/Termina memorizzato Database)

I' = (Nuovo Orario Inizio)
F' =(Nuovo Orario Fine)

Possono succedere tre cose :

a) Il nuovo orario è dentro il Range di I e F ex : I = 12:00 e F = 14:00 , I' = 13:00 e F' = 13:50
b) Il nuovo orario termina dentro il Range di I e F ex: I = 12:00 e F=14:00 , I' = 9:00 e F'= 13:00
c) Il nuovo orario Inizia dentro il Range di I e F ex : I = 12:00 e F=14:00 , I' = 13:00 e F' = 18:00
f) Controllare che I' e F' non coincidono con I e F memorizzati .

Dobbiamo fare in modo che verifichi sempre che non succedono questi tre casi :

Quindi pensavo di fare un controllo in questa maniera :

If ( I = I' ) AND (F = F') THEN
return FALSE
End if

Prima di verificare tutti i casi faccio un controllo che l'orario inserito è di sicuro più piccolo di quello memorizzato o più grande di quello memorizzato :

Se l'orario nuovo di fine (F') è più piccolo dell'orario di inizio (I) che è già memorizzato lo inserisco subito If ( F' < I) then return TRUE end if

Se l'orario nuovo di inizio (I') è più grande dell'orario di fine (F) che è già memorizzato lo inserisco subito if( I' > F) then return TRUE end if

Ora procedo a verificare se si accavalla l'orario :

if (( I < I') AND (F > F') ) OR ((I>I') AND (F >F') ) OR ((I<I') AND (I'<F)) THEN
return FALSE
End if

Tradotto :

per verificare la condizione (a) devo fare la verifica di ( I < I' ) AND (F>F')
per verificare la condizione (b) devo fare la verifica di (I > I' ) AND (F>F')
per verificare la condizione (c) devo fare la verifica di (I < I' ) AND ( I'<F)

Spero che mi sono fatto capire, non l'ho provato fammi sapere.

Saluti Davide
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5