2017-12-28 12 views
1

Wie überprüfe ich, ob meine aktuelle Zeit zwischen 06:00:00 und 11:00:00 liegt?vb.net - Wie überprüfe ich, ob die aktuelle Zeit zwischen zwei Zeitpunkten liegt?

Ist es ungefähr so?

If Now.ToString("hh:mm:ss tt") >= "06:00:00 AM" and Now.ToString <= "11:00:00 AM" Then 
    'Do something 
End If 

Es tut mir leid. Ich lerne immernoch.

+2

Sie können keine Mathe-Vergleiche auf Strings durchführen. Der 'DateTime' Typ hat Eigenschaften, so dass Sie Hour, Mon, Sec usw. vergleichen können. – Plutonix

+0

Kann ich ein Muster dafür bekommen? – pampilord

+1

Verwenden Sie 'DateTime.Now' anstelle von' Now', was ein VB6-Holdover ist. Es ist 'TimeOfDay' Eigenschaft gibt Ihnen eine' TimeSpan', die die aktuelle Zeit darstellt. Sie können das mit einem anderen "TimeSpan" vergleichen, den Sie erstellen, um eine bestimmte Zeit darzustellen. Wenn Sie eine Probe wünschen, schauen Sie nach. Ich bin sicher, dass das Hilfe-Menü in Ihrer VS-Kopie genauso funktioniert wie meine. Und Sie haben denselben Zugang zu Suchmaschinen im Internet. – jmcilhinney

Antwort

1

Ich fühle mich wie es sollte eine einfachere Möglichkeit, dies zu tun, aber wenn es ist, kann ich nicht daran denken. Hier ist die einfachste/sicherste Art und Weise, wie ich dazu kam:

Dim curr As Date = Date.Now 
Dim startTime As New Date(curr.Year, curr.Month, curr.Day, 6, 0, 0) 
Dim endTime As New Date(curr.Year, curr.Month, curr.Day, 11, 0, 0) 
If (curr >= startTime) And (curr <= endTime) Then 
    ' Do something 
End If 
Verwandte Themen