我試圖創建一些VB代碼來獲取上個月的開始和結束。 林能當月這僅僅是:如何在VB中獲取上個月的開始和結束
Month(DateValue(Now))
這將返回3.從那裏我可以帶走1給我2月份的含義。這很好,但是當我在一月份進行重複操作時,如何讓它變爲零 - 我的代碼將會失敗。任何人都知道如何獲得前幾個月的開始和結束日呢?
感謝
我試圖創建一些VB代碼來獲取上個月的開始和結束。 林能當月這僅僅是:如何在VB中獲取上個月的開始和結束
Month(DateValue(Now))
這將返回3.從那裏我可以帶走1給我2月份的含義。這很好,但是當我在一月份進行重複操作時,如何讓它變爲零 - 我的代碼將會失敗。任何人都知道如何獲得前幾個月的開始和結束日呢?
感謝
前一個月的第一天總是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
試試這個得到月份數形式:
Month(DateAdd("m", -3, Now))
它會給你12
十二月。
所以在你的情況下,你會使用Month(DateAdd("m", -1, Now))
只需一個月。
這是如何得到上個月的開始和結束_day_? – user66001 2017-09-04 21:56:53
firstDay = DateSerial(Year(DateAdd("m", -1, Now)), Month(DateAdd("m", -1, Now)), 1)
lastDay = DateAdd("d", -1, DateSerial(Year(Now), Month(Now), 1))
這是另一種方式來做到這一點,但餘噸hink Remou的版本看起來更乾淨。
我有相似的配方和最後一天
在第一個月的日
FirstDay = DateSerial(Year(Date),Month(Date),1)
下個月的零日是本月的最後一天
LastDay = DateSerial(Year(Date),Month(Date)+ 1,0)
這項工作將在12月份進行嗎? – BGilman 2018-02-22 21:06:58
只需要添加一些什麼@Fionnuala說,下面的函數可以使用。這些甚至適用於閏年。
'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
你好Remou只是再次檢查你的代碼,並有另一個問題 - 爲什麼當我這樣做:LastDay = DateSerial(年(日期),月(日期) - 1,1 - 1)我得到31/01/2013年而不是28/02/2013?當然,本月(日期) - 1返回2暗示2月 – Katana24 2013-03-20 16:16:07
你有月-2,一個月(日期)-1,一天0。本月的第0天是上個月的最後一天,所以2月是dateserial(2013,3,0),而不是你所顯示的。 – Fionnuala 2013-03-20 16:21:42
噢好吧 - 這就是decieving。謝謝 – Katana24 2013-03-20 16:24:26