Confronto tra fasce orario

venerdì 21 novembre 2008 - 07.01

basicdany Profilo | Expert

Ciao, ben ritrovati a tutti, devo confrontare delle fascie orarie, in particolare devo controllare l'ora attuale
rientri dalle 8 del pomeriggio alle 8 di mattina. come posso fare questo?
quindi mi serve per intenderci una condizione if...
se l'ora attuale e compresa dalle 8 del pm a 8 del am allora esegui...

grazie a tutti

aiedail92 Profilo | Expert

Ciao

Usando il tipo DateTime, il processo è molto semplice:

'Ottiene l'ora corrente Dim ora As DateTime = DateTime.Now 'Controlla che l'ora sia compresa fra le 20 e le 8 If ora.Hour < 8 OrElse ora.Hour >= 20 Then 'fai qualcosa End If

Luca

basicdany Profilo | Expert

ciao, grazie tanto per la risposta, mentre se devo confrontare un ora che va dalle 8 30 am a 1 00 pm
come dovrei fare l'istruzione?
grazie tanto mi sei di tanto aiuto!

aiedail92 Profilo | Expert

In tal caso cambio l'approccio per semplificare il procedimento: invece che usare il tipo DateTime, uso la struttura TimeSpan; questa rappresenta un intervallo di tempo e vi sono definiti i metodi di comparazione. Il codice diventa quindi molto semplice:

'L'ora corrente della giornata Dim ora As TimeSpan = DateTime.Now.TimeOfDay 'Il limite inferiore (8.30) Dim limit1 As New TimeSpan(8, 30, 0) 'Il limite superiore (13.00 = 1pm) Dim limit2 As New TimeSpan(13, 0, 0) 'Confronta l'ora coi due limiti (l'ora è compresa nel limite) ' dalle 8.30 alle 13.00 If ora > limit1 AndAlso ora < limit2 Then 'Fai qualcosa End If 'Confronta l'ora coi due limiti (l'ora è esclusa dal limite) ' prima delle 8.30 o dopo le 13.00 If ora < limit1 OrElse ora > limit2 Then 'Fai qualcosa End If

Luca

basicdany Profilo | Expert

ciao, ti spiego cosa devo fare, in pratica ho 4 fascie orarie
8.30 13.00
13.00 16.30
16.30 20.00
20.00 8.30

Il programma quando si trova dentro queste fascie orarie deve fare qualcosa, e importante che i valore siano compresi nell'orario es. 8.30 13.00 e incluso 8.30 e 13.00,e che nell'ultima fascia appartine al giorno successivo....

Cosa mi consigli fare

grazie tanto

aiedail92 Profilo | Expert

A questo punto farei così:

'L'ora corrente della giornata Dim ora As TimeSpan = DateTime.Now.TimeOfDay 'I quattro limiti orari (8.30, 13.00, 16.30, 20.00) Dim limit1 As New TimeSpan(8, 30, 0), limit2 As New TimeSpan(13, 0, 0), _ limit3 As New TimeSpan(16, 30, 0), limit4 As New TimeSpan(20, 0, 0) Select Case ora Case Is < limit1, Is > limit4 '20.00 - 8.30 Case limit1 To limit2 '8.30 - 13.00 Case limit2 To limit3 '13.00 - 16.30 Case limit3 To limit4 '16.30 - 20.00 End Select

Luca
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5