2013-03-15 24 views
7

में पिछले महीने की शुरुआत और अंत कैसे प्राप्त करें I कुछ वीबी कोड बनाने की कोशिश कर रहा है जो पिछले महीने की शुरुआत और अंत प्राप्त करेगा। इम चालू माह के लिए सक्षम जो सिर्फ है:वीबी

Month(DateValue(Now)) 

जो 3. वापसी होगी वहां से मैं दूर 1 ले मुझे 2 अर्थ फ़रवरी देने के लिए कर सकते हैं। यह ठीक है लेकिन जब मैं जनवरी में आईएम करता हूं और मैं इसे दोहराता हूं और यह मुझे शून्य देता है - मेरा कोड असफल हो जाएगा। किसी को भी पता है कि पिछले महीने कैसे शुरू और अंत दिन प्राप्त करें?

धन्यवाद

उत्तर

19

पिछले महीने के पहले दिन हमेशा 1 है, पिछले महीने के अंतिम दिन पाने के लिए, DateSerial साथ 0 का उपयोग करें:

''Today is 20/03/2013 in dd/mm/yyyy 
DateSerial(Year(Date),Month(Date),0) = 28/02/2013 
DateSerial(Year(Date),1,0) = 31/12/2012 

तुम इतनी तरह से पहले दिन प्राप्त कर सकते हैं:

LastDay = DateSerial(Year(Date),Month(Date),0) 
FirstDay = LastDay-Day(LastDay)+1 

यह भी देखें: How to caculate last business day of month in VBScript

+0

हाय रेमू बस आपके कोड पर फिर से जा रहा था और एक और सवाल है - ऐसा क्यों है कि जब मैं ऐसा करता हूं: LastDay = DateSerial (वर्ष (दिनांक), महीना (दिनांक) - 1, 1 - 1) मुझे 31/01/28/02/2013 की बजाय 2013? निश्चित रूप से महीना (तिथि) - 1 रिटर्न 2 फरवरी – Katana24

+0

आपके पास महीना -2 है, एक बार महीने (दिनांक) -1 के लिए, एक दिन के लिए 0 के लिए। इस महीने का शून्य दिन पिछले महीने का आखिरी दिन है, इसलिए फरवरी दिनांकित (2013,3,0) है, जैसा कि आप दिखाते हैं। – Fionnuala

+0

ओह ठीक है - वह दे रहा है। धन्यवाद – Katana24

0

इस प्रयास करें संख्या के रूप में महीने के पाने के लिए:

Month(DateAdd("m", -3, Now)) 

यह दिसंबर के लिए आप 12 दे देंगे।

तो आपके मामले में आप केवल एक महीने के लिए Month(DateAdd("m", -1, Now)) का उपयोग करेंगे।

+0

यह पिछले महीने की शुरुआत और समाप्ति दोनों को कैसे प्राप्त करता है? – user66001

0
firstDay = DateSerial(Year(DateAdd("m", -1, Now)), Month(DateAdd("m", -1, Now)), 1) 
lastDay = DateAdd("d", -1, DateSerial(Year(Now), Month(Now), 1)) 

यह एक और तरीका यह करने के लिए है, लेकिन मैं टी हिंक रेमो का संस्करण क्लीनर दिखता है।

4

मैं पहले के लिए इसी तरह के सूत्र और अंतिम दिन

प्रथम माह का दिन है

FirstDay = DateSerial(Year(Date),Month(Date),1) 

अगले महीने के शून्य दिवस महीने के अंतिम दिन है

LastDay = DateSerial(Year(Date),Month(Date)+ 1,0) 
+0

क्या यह दिसंबर में तिथियों के लिए काम करेगा? – BGilman

0

@Fionnuala Said के लिए कुछ जोड़ने के लिए, नीचे दिए गए कार्यों का उपयोग किया जा सकता है। ये लीप वर्षों के लिए भी काम करते हैं।

'If you pass #2016/20/01# you get #2016/31/01# 
Public Function GetLastDate(tempDate As Date) As Date 
    GetLastDate = DateSerial(Year(tempDate), Month(tempDate) + 1, 0) 
End Function 

'If you pass #2016/20/01# you get 31 
Public Function GetLastDay(tempDate As Date) As Integer 
    GetLastDay = Day(DateSerial(Year(tempDate), Month(tempDate) + 1, 0)) 
End Function