Ich habe eine Situation, in der ich Stunden zu einem Datum hinzufügen möchte und das neue Datum um den Arbeitstag wickeln lassen soll. Ich habe eine Funktion entwickelt, um dieses neue Datum zu bestimmen, aber ich möchte sicherstellen, dass ich nichts vergesse.Was ist der beste Weg, die Zeit am Arbeitstag zu verbringen?
Die hinzuzufügenden Stunden werden "Verzögerung" genannt. Es könnte leicht ein Parameter für die Funktion sein.
Bitte posten Sie irgendwelche Vorschläge. [VB.NET Warning]
Private Function GetDateRequired() As Date
''// A decimal representation of the current hour
Dim hours As Decimal = Decimal.Parse(Date.Now.Hour) + (Decimal.Parse(Date.Now.Minute)/60.0)
Dim delay As Decimal = 3.0 ''// delay in hours
Dim endOfDay As Decimal = 12.0 + 5.0 ''// end of day, in hours
Dim startOfDay As Decimal = 8.0 ''// start of day, in hours
Dim newHour As Integer
Dim newMinute As Integer
Dim dateRequired As Date = Now
Dim delta As Decimal = hours + delay
''// Wrap around to the next day, if necessary
If delta > endOfDay Then
delta = delta - endOfDay
dateRequired = dateRequired.AddDays(1)
newHour = Integer.Parse(Decimal.Truncate(delta))
newMinute = Integer.Parse(Decimal.Truncate((delta - newHour) * 60))
newHour = startOfDay + newHour
Else
newHour = Integer.Parse(Decimal.Truncate(delta))
newMinute = Integer.Parse(Decimal.Truncate((delta - newHour) * 60))
End If
dateRequired = New Date(dateRequired.Year, dateRequired.Month, dateRequired.Day, newHour, newMinute, 0)
Return dateRequired
End Sub
Hinweis: Dies wird wahrscheinlich nicht funktionieren, wenn Verzögerung mehr als 9 Stunden lang. Es sollte nie von 3 bis durchgehen.
EDIT: Das Ziel ist, das Datum und die Uhrzeit zu finden, die Sie durch das Hinzufügen mehrerer Stunden zur aktuellen Uhrzeit erhalten. Dies wird verwendet, um einen Standardwert für ein Fälligkeitsdatum einer Einreichung zu bestimmen. Ich möchte 3 Stunden zur aktuellen Zeit hinzufügen, um die Fälligkeitszeit zu erhalten. Ich möchte jedoch keine Fälligkeiten, die am heutigen Tag über 17 Uhr hinausgehen. Also habe ich versucht, die Stunden zwischen (heute, bis 17 Uhr) und (morgen, ab 8 Uhr morgens) zu teilen, so dass das Hinzufügen von 3 Stunden bis 4 Uhr 19 Uhr geben würde, weil 1 Stunde bis zum Ende von heute und 2 addiert wird Stunden werden zu Beginn von morgen hinzugefügt.
Dies ist nicht die Antwort, aber es ist ein upvote. –