मेरे पास एक ऐसी स्थिति है जहां मैं एक तारीख में घंटे जोड़ना चाहता हूं और कार्य दिवस के चारों ओर नई तारीख लपेटना चाहता हूं। मैंने इस नई तारीख को निर्धारित करने के लिए एक समारोह को झुकाया, लेकिन यह सुनिश्चित करना चाहता हूं कि मैं कुछ भी नहीं भूल रहा हूं।
जोड़े जाने वाले घंटों को "देरी" कहा जाता है। यह आसानी से फ़ंक्शन के लिए पैरामीटर हो सकता है।
कृपया कोई सुझाव पोस्ट करें। [वीबीएनईटी चेतावनी]
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
Note: This will probably not work if delay is more than 9 hours long. It should never change from 3, through.
संपादित करें:
लक्ष्य वर्तमान समय में कई घंटे जोड़ने के परिणामस्वरूप आपको प्राप्त होने वाली तिथि और समय मिल जाता है। इसका उपयोग जमा करने की देय तिथि के लिए डिफ़ॉल्ट मान निर्धारित करने के लिए किया जाता है। मैं देय दिनांक समय प्राप्त करने के लिए वर्तमान समय में 3 घंटे जोड़ना चाहता हूं। हालांकि, मैं उन तारीखों को नहीं चाहता जो वर्तमान दिन 5 बजे से आगे बढ़ें। इसलिए, मैंने घंटों को (आज, 5 बजे तक) और (कल, 8 बजे से) के बीच विभाजित करने की कोशिश की, जैसे कि 3 घंटे से शाम 4 बजे जोड़ना आपको 1 9 बजे देगा, क्योंकि 1 घंटे आज के अंत में जोड़ा जाता है और 2 कल की शुरुआत में घंटे जोड़े गए हैं।