| |
VB.NET - Ein- und UmsteigerZeit in Datetimepicker | | | Autor: Marty** | Datum: 22.10.17 17:35 |
| Hallo,
ich möchte beim laden meiner Form eine feste Zeit in den Datetimepicker übergeben.
DateTimePicker1.Format = Time
Würder gerne 07:00.00 drinnen haben.
MfG | |
Re: Zeit in Datetimepicker | | | Autor: Marty** | Datum: 23.10.17 17:42 |
| Hallo,
habe mir jetzt ein den Anwendungseinstellungen folgenden Wert angelegt:
Name Von1
Typ Date
Bereich Benutzer
Private Sub Einstellungen_FormClosed(sender As Object, e As _
FormClosedEventArgs) Handles MyBase.FormClosed
My.Settings.Von1 = DateTimePicker1.Value
My.Settings.Save()
My.Settings.Reload()
End Sub laden möchte ich das ganze wieder mit
Private Sub Einstellungen_Load(sender As Object, e As EventArgs) Handles _
MyBase.Load
DateTimePicker1.Value = CDate(My.Settings.Von1)
End Sub
Oder wo liegt der Fehler ? | |
Re: Zeit in Datetimepicker | | | Autor: Manfred X | Datum: 23.10.17 19:09 |
| Hallo!
Die Settingsvariable "von1" ist als Datentyp "Date" anzulegen.
Die Umwandlung durch "CDate" beim Lesen wäre dann unnötig.
Es sollte für diese Variable ein geeigneter Default-Wert festgelegt
werden (siehe oben).
Das Speichern der Settings-Variablen kann in den Projekt-Einstellungen
angegeben werden (Anwendungsframework: "beim Herunterfahren speichern").
Beitrag wurde zuletzt am 23.10.17 um 19:36:07 editiert. | |
Re: Zeit in Datetimepicker | | | Autor: Marty** | Datum: 28.10.17 15:24 |
| Hallo,
ok meine Zeiteinstellungen habe ich in den Griff bekommen.
Von1 = Startzeit
Bis1 = Endzeit
Wie kann ich überprüfen ob meine aktuelle Zeit in diesem Zeitfenster liegt ? | |
Re: Zeit in Datetimepicker | | | Autor: effeff | Datum: 28.10.17 15:43 |
| //Wie kann ich überprüfen ob meine aktuelle Zeit in diesem Zeitfenster liegt ?//
Indem Du prüfst, ob die aktuelle Zeit größer ist als die Startzeit und kleiner als die Endzeit:
Public Class Form1
Dim Startzeit As Date = DateAdd("s", -5, Now)
Dim Endzeit As Date = DateAdd("s", 5, Now)
Dim Jetztzeit As Date = Now
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
txtStartzeit.Text = Startzeit
txtEndzeit.Text = Endzeit
txtJetztzeit.Text = Jetztzeit
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
Button1.Click
If (Startzeit < Jetztzeit) And (Jetztzeit < Endzeit) Then
MessageBox.Show("Die Zeit liegt voll im Rahmen!")
Else
MessageBox.Show("Die Zeit liegt außerhalb des Rahmens!")
End If
End Sub
End Class EALA FREYA FRESENA | |
Prüfen eines Zeitintervalls | | | Autor: Manfred X | Datum: 28.10.17 20:45 |
| Hallo!
Zu unterscheiden ist, ob das Zeitfenster durch zwei Zeitpunkte oder
durch zwei Uhrzeiten ("Everyday") gegeben wird (IncludeDate-Parameter).
Relevant ist häufig auch, ob die Grenzen des Zeitfensters einzuschließen sind.
''' <summary>Prüft, ob ein Zeitpunkt innerhalb eines Zeitintervalls liegt</summary>
''' <param name="DateTimeToCheck">zu prüfender Zeitpunkt</param>
''' <param name="LowerLimit">Beginn des Zeitintervalls</param>
''' <param name="UpperLimit">Ende des Zeitintervalls</param>
''' <param name="IncludeDate">Soll das Datum einbezogen werden?</param>
''' <param name="IncludeLowerLimit">Beginn bereits im Zeitintervall</param>
''' <param name="IncludeUpperLimit">Ende noch im Zeitintervall</param>
Private Function IsInTimeInterval(ByVal DateTimeToCheck As DateTime, _
ByVal LowerLimit As DateTime, ByVal UpperLimit As DateTime, _
Optional ByVal IncludeDate As Boolean = False, _
Optional ByVal IncludeLowerLimit As Boolean = True, _
Optional ByVal IncludeUpperLimit As Boolean = True) As Boolean
Dim basedate As New DateTime(2000, 1, 1)
If Not IncludeDate Then
UpperLimit = basedate.Add(UpperLimit.TimeOfDay)
LowerLimit = basedate.Add(LowerLimit.TimeOfDay)
DateTimeToCheck = basedate.Add(DateTimeToCheck.TimeOfDay)
End If
If LowerLimit > UpperLimit Then
Throw New ArgumentException _
("Unzulässige Angabe für Zeitfenster")
End If
Dim CheckUpper, CheckLower As Boolean
If IncludeLowerLimit Then
CheckLower = DateTimeToCheck >= LowerLimit
Else
CheckLower = DateTimeToCheck > LowerLimit
End If
If IncludeUpperLimit Then
CheckUpper = DateTimeToCheck <= UpperLimit
Else
CheckUpper = DateTimeToCheck < UpperLimit
End If
Return CheckUpper And CheckLower
End Function Ergänzender Hinweis:
Es wird nicht geprüft, ob die als Parameter übergebenen DateTime-Werte
innerhalb der regionalen Gültigkeit des jeweils eingestellten Kalenders liegen.
Beitrag wurde zuletzt am 28.10.17 um 20:56:51 editiert. | |
Re: Zeit in Datetimepicker | | | Autor: Marty** | Datum: 29.10.17 06:20 |
| Ok, dankeschön. Wusste nicht das ich Zeit mit < > vergleichen kann.
Wie kann ich Zeiten die in einen Label ausgegeben werden addieren ?
If RadioButton1.Checked = True Then
AZ1.Text = (DateTimePicker2.Value.TimeOfDay - _
DateTimePicker1.Value.TimeOfDay).ToString
AZ2.Text = (DateTimePicker4.Value.TimeOfDay - _
DateTimePicker3.Value.TimeOfDay).ToString Mein Ansatz war
Dauer.Text = CDate(AZ1.Text) + CDate(AZ2.Text) bzw.
Dauer.Text = Val(AZ1.Text) + Val(AZ2.Text) Hier werden aber nur die Std. addiert | |
Prüfen eines Zeitintervalls (Tageswechsel) | | | Autor: Manfred X | Datum: 29.10.17 15:35 |
| Falls ein Zeitintervall, das durch zwei Uhrzeiten gegeben ist, einen
Tageswechsel beinhaltet, ist der "AllowDateChange"-Parameter "true"
zu setzen - also z.B. Zeitbereich 23:00 Uhr bis 1:00 Uhr.
Wenn "IncludeDate" "true" ist, wird dieser Parameter ignoriert.
''' <summary>Prüft, ob ein Zeitpunkt innerhalb eines Zeitintervals liegt</summary>
''' <param name="DateTimeToCheck">zu prüfender Zeitpunkt</param>
''' <param name="LowerLimit">Beginn des Zeitintervalls</param>
''' <param name="UpperLimit">Ende des Zeitintervalls</param>
''' <param name="IncludeDate">Soll das Datum einbezogen werden?</param>
''' <param name="IncludeLowerLimit">Liegt der Beginn im Zeitintervall?</param>
''' <param name="IncludeUpperLimit">Liegt das Ende noch im Zeitintervall?</param>
''' <param name="AllowDateChange">
''' Ist ein Tageswechsel zwischen den Uhrzeiten erlaubt?</param>
Private Function IsInTimeInterval(ByVal DateTimeToCheck As DateTime, _
ByVal LowerLimit As DateTime, ByVal UpperLimit As DateTime, _
Optional ByVal IncludeDate As Boolean = False, _
Optional ByVal IncludeLowerLimit As Boolean = True, _
Optional ByVal IncludeUpperLimit As Boolean = True, _
Optional ByVal AllowDateChange As Boolean = False) As Boolean
Dim basedate As New DateTime(2000, 1, 1)
If Not IncludeDate Then
UpperLimit = basedate.Add(UpperLimit.TimeOfDay)
LowerLimit = basedate.Add(LowerLimit.TimeOfDay)
DateTimeToCheck = basedate.Add(DateTimeToCheck.TimeOfDay)
End If
If LowerLimit > UpperLimit Then
If Not IncludeDate AndAlso AllowDateChange Then
'Tageswechsel zwischen den beiden Uhrzeiten
UpperLimit = UpperLimit.AddDays(1)
Else
Throw New ArgumentException _
("Unzulässige Angabe für Zeitfenster")
End If
End If
Dim CheckUpper, CheckLower As Boolean
If IncludeLowerLimit Then
CheckLower = DateTimeToCheck >= LowerLimit
Else
CheckLower = DateTimeToCheck > LowerLimit
End If
If IncludeUpperLimit Then
CheckUpper = DateTimeToCheck <= UpperLimit
Else
CheckUpper = DateTimeToCheck < UpperLimit
End If
Return CheckUpper And CheckLower
End Function | |
Re: Zeit in Datetimepicker | | | Autor: Franki | Datum: 30.10.17 02:02 |
| Hallo,
um Zeiten zu addieren kannst wie schon erwähnt DateAdd verwenden. Da gibt es ein Intervall welches für die Addition berücksichtigt wird. Also z.B.Sekunden, Minuten, Stunden oder auch Tage, Monate, Jahre usw.
Zeitdifferenzen kannst du aber besser mit DateDiff berechnen und über DatePart kannst du Teile eines Datum/Uhrzeit ermitteln.
Schau dir mal die Hilfe zu diesen Sachen an da sind auch Beispiele dabei.
Unter Umständen funktioniert das zwar auch mit + und - oder mit <> aber sicherer ist die Variante mit den dafür vorgesehen Sachen. Besonders wenn es sich um Strings handelt die durch Usereingaben erst umgewandelt werden müssen ist das wichtig, dass es sich um qualifizierte Datums/Zeitangaben handelt.
Wir erinnern uns ja noch an die Anfangszeiten wo z.B. 1 + 1 = 11 war weil einfach die zwei Eingaben des Users in Textfelder aneinander gehängt worden sind.
Gruß
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|