2013-02-04 41 views
1

我正在嘗試移動日期,即返回一個月或轉發一個月。如果我從本月(2月)到1月份回到一個月,那麼如果我添加一個月,它會在2月份的最後一天(第28天)保持不變。開始日期在1月份的所有月份開始時都是正常的。VB.net Addmonths

請任何人都可以advise.Thanks

Vb的

  hStartDate.Value = "2013/2/01 12:00:00 AM" 
      hEndDate.Value = "2013/2/28 11:59:59 PM" 


      Dim StartDate As New Date 
      StartDate = hStartDate.Value 
      hStartDate.Value = StartDate.AddMonths(-1) 


      Dim EndDate As New Date 
      EndDate = hEndDate.Value 
      hEndDate.Value = EndDate.AddMonths(-1) 

輸出

  hStartDate.Value = "2013/01/01" 
      hEndDate.Value = "2013/01/28 11:59:59 PM" 
+0

結束日期*總是*意味着比開始日期晚一個月嗎?如果是這樣,我會盡全力通過開始日期:通過增加一個月然後減去一天來計算結束日期。 –

+0

沒有它的圖表,我拿着當前月份的負載數據,然後我有按鈕去上個月或下個月(基本上增加一個月或刪除一個月,他們目前在哪個月。 – user1475479

+0

你'我沒有要求代碼讓你在上個月的最後一個日期,你所要求的只是從明確設置的當前日期中刪除一個月。 –

回答

0

試試這個設定結束日期(hStartDate修改後):

hEndDate.Value = New Date(hStartDate.Year, hStartDate.Month, Date.DaysInMonth(hStartDate.Year, hStartDate.Month)) 

Date.DaysInMOnth()返回一個月的最後一天中給出了一年的函數。如果您願意,您也可以設置日期:

hEndDate.Value = EndDate.AddMonths(-1) 
hEndDate.Value.Day = Date.DaysInMonth(hStartDate.Year, hStartDate.Month) 
+0

這正是我需要的。謝謝 – user1475479

0

這應有助於:DevCurry它基本上走的是當月的第一天,並刪除一個這樣一天導致上個月的最後一天。

hStartDate.Value = "2013/2/01 12:00:00 AM" 
    hEndDate.Value = "2013/2/28 11:59:59 PM" 


    Dim StartDate As New Date 
    StartDate = hStartDate.Value 
    hStartDate.Value = StartDate.AddMonths(-1) 


    Dim EndDate As New Date 
    EndDate = hEndDate.Value 
    hEndDate.Value = StartDate.AddDays(-1)