2010-01-19 15 views
5

प्राप्त करने के लिए साफ-सुथरा तरीका इससे कोई फर्क नहीं पड़ता कि मैं किस दिन फ़ंक्शन पर कॉल करता हूं।अंतिम शुक्रवार की तारीख

मुझे पता है कि मैं एक चुनिंदा केस सप्ताहांत (अब) कथन लिख सकता हूं, क्या यह सोच रहा था कि जाने के लिए एक साफ रास्ता था या नहीं?

+2

दिलचस्प सवाल है। मैंने सोचा कि यह शुरू में पढ़ता है: "पिछले शुक्रवार की तारीख पाने के लिए साफ तरीका" - एक लड़की के डेटिंग में। – Phil

उत्तर

7

इस मदद आप आरंभ करता है? मैंने अभी इसे एक त्वरित परीक्षण दिया और ठीक काम करने लग रहा था।

Private Sub LastFriday() 

    Dim iWeekday As Integer, LastFridayDate As Date 

    iWeekday = Weekday(Now(), vbFriday) 

    LastFridayDate = Format(Now - (iWeekday - 1), "dd-mmm-yy") 

End Sub 
+1

+1 कैसे प्रारूप (दिनांक- (सप्ताहांत (दिनांक, vbFriday) -1), "डीडी-एमएमएम-वाई") – THEn

+0

@THEn - अच्छी जगह - जो काम करेगी और कोड को और अधिक संक्षिप्त बनाती है। मुझे लगता है कि यह सिर्फ शैली का मामला है। –

0
DatePart('dddd', now) 

या

DatePart('dddd', #1/1/2010#) 

... एक स्पष्ट की तारीख के साथ।

4

DATEADD ("डी", -1 - काम करने के दिन (अब), अब)

0

यह समारोह पिछले महीने के लिए हर शुक्रवार को मिलेगा, आप इस तरह के सोमवार अन्य दिनों सूट करने के लिए इसे बदल सकते हैं "oldDay = 2" आदि विधि आज की तारीख से काम करेंगे, लेकिन आप सूट करने के लिए है कि बदल सकते हैं

मंद todaysDate के रूप में दिनांक = Date.Today मंद oldDay पूर्णांक मंद thisWeek के रूप में के रूप में दिनांक

Dim firstWeek As Date 
    Dim secondWeek As Date 
    Dim thirdWeek As Date 
    Dim fourthWeek As Date 


    ''finds the Friday of the end of the current week 
    ''No mattter what day you are working 
    Dim daycount As Integer 

    oldDay = Weekday(todaysDate) 
    thisWeek = todaysDate 

    If oldDay < 6 Then 
     daycount = 6 - oldDay 
     thisWeek = thisWeek.AddDays(+daycount) 
    ElseIf oldDay > 6 Then 
     daycount = oldDay - 6 
     thisWeek = thisWeek.AddDays(-daycount) 
    End If 


    firstWeek = thisWeek 
    secondWeek = thisWeek 
    thirdWeek = thisWeek 
    fourthWeek = thisWeek 

    fourthWeek = firstWeek.AddDays(-28) 
    thirdWeek = thirdWeek.AddDays(-21) 
    secondWeek = secondWeek.AddDays(-14) 
    firstWeek = firstWeek.AddDays(-7) 
संबंधित मुद्दे