나는 데이트에 시간을 추가하고 새로운 날을 근무일로 감싸고 싶다. 나는이 새로운 날짜를 결정하는 함수를 자필로 만들었지 만 나는 아무것도 잊지 않고 있는지 확인하고자한다.근무일을 감싸는 가장 좋은 방법은 무엇입니까?
추가 할 시간을 "지연"이라고합니다. 대신 함수에 대한 매개 변수가 될 수 있습니다.
제안 사항을 게시하십시오. [VB.NET 경고]
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
주 : 이것은 아마도 지연 이상 9시간 긴 경우 작동하지 않습니다. 3 번에서부터 변경해서는 안됩니다.
편집 : 목표는 현재 시간에 몇 시간을 추가 한 결과로 얻은 날짜와 시간을 찾는 것입니다. 이것은 제출 기한의 기본값을 결정하는 데 사용됩니다. 기한을 정하기 위해 현재 시간에 3 시간을 더하고 싶습니다. 그러나 나는 당일 오후 5시를 초과하는 마감일을 원하지 않습니다. 오늘 (오늘 오후 5 시까 지)과 (내일 오전 8시에) 시간을 나누려고했는데, 오후 4시에 3 시간을 추가하면 오늘 오후 1 시가 추가되고 오후 2시에 2 시간 추가되기 때문에 19 시가됩니다. 시간은 내일의 시작에 추가됩니다.
이 대답은 아니지만 그것은 upvote에 있습니다. –