2015-12-07 67 views
2

我遇到了DateTimePicker的問題。如何將1個月添加到選定的DateTimePicker

我目前試圖做的是基於什麼文字在lblPrevSem(上一學期),這是從前一個屏幕下拉選擇它的選擇,我想添加一定的時間到的DateTimePicker。

Public Property CustomFormat As String 
Dim SemesterMonths As Integer 
Dim SemesterDays As Integer 


Private Sub DeptCreatePrevSch_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim SemesterYear() As String = DeptPrevSch.CboSem.Text.Split(",") 


    lblPrevSem.Text = SemesterYear(0) 
    cboYear.Text = Date.Now.Year 
    For i As Integer = 0 To 5 
     cboYear.Items.Add(Date.Now.Year + i) 
     cboYear.SelectedIndex = 0 
    Next 

    If InStr(lblPrevSem.Text, "Fall") Then 
     SemesterMonths = 1 
    ElseIf InStr(lblPrevSem.Text, "Spring") Then 
     SemesterMonths = 1 
    ElseIf InStr(lblPrevSem.Text, "Summer") Then 
     SemesterDays = 14 
    End If 

    Call dtpStart_ValueChanged(sender, e) 
End Sub 

Private Sub dtpStart_ValueChanged(sender As Object, e As EventArgs) Handles dtpStart.ValueChanged 

    Dim StartDate As Date 
    Dim StartStringDate As String 
    Dim EndDate As Date 
    Dim EndStringDate As String 


    dtpStart.Format = DateTimePickerFormat.Custom 
    dtpStart.CustomFormat = "MMMM dd, yyyy dddd" 

    StartDate = dtpStart.Value.ToString 
    StartStringDate = StartDate.ToString("MMMM dd, yyyy dddd") 
    lblRegStartDate.Text = StartStringDate 

    EndDate = dtpStart.Value.AddMonths(SemesterMonths) 
    EndDate = dtpStart.Value.AddDays(SemesterDays) 
    EndStringDate = EndDate.ToString("MMMM dd, yyyy dddd") 
    lblRegEndDate.Text = EndStringDate 

End Sub 

我能得到它在幾天就好了,但我曾經嘗試和增加1個月,它似乎時不會在所有的工作補充。

我已經嘗試了多種不同的方式在1個月內添加,但迄今沒有任何工作。衣櫃一直在30天內增加,但是這並沒有解釋爲期31天的月份。

註冊開始日期就是有史以來的DateTimePicker是和註冊結束日期應該是基於關閉的加入天什麼lblPrevSem是

兩個註冊開始/結束日期顯示爲標籤

(即秋季= 1月,春季= 1月,夏季= 2周)

+0

首先,以這種方式調用事件是一個非常糟糕的主意,事件應該表示用戶交互。把代碼放在一個方法裏可以從任何地方調用它。 Dim StartDate As Date ... = dtpStart.Value.ToString'讓我覺得Option Strict不是。這些dtp屬性中的一些可以在設計器中設置一次,而不是在方法中重複使用 – Plutonix

+0

我不知道這些可以在設計器中設置嗎? –

+0

而我完全忘了設置選項嚴格。那麼該死的工作,無所事事......回去工作,然後我想....感謝提醒我這件事。 –

回答

1

您的問題是您添加SemesterMonths值後重置EndDate的值。您應該SemesterDays值添加到結束日期變量,而不是重置結束日期與dtpStart.Value.AddDays(SemesterDays)值:

EndDate = dtpStart.Value.AddMonths(SemesterMonths) 
EndDate = EndDate.AddDays(SemesterDays) 
+0

謝謝,虐待後,我重寫了所有這些,因爲我忘記把選項嚴格就像一個白癡 –

1

剛剛獲得的DateTimePicker值,並把.AddYears(0)或.AddDays( 0)或AddMonths(0)後面。
但您也可以同時使用它們。

nextServiceDateTimePicker.Value.AddYears(0).AddDays(0).AddMonths(0); 

只要將0替換爲讓我說,我給它你需要它的價值。

相關問題