Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何向选定的DateTimePicker添加1个月_Vb.net_Datetimepicker - Fatal编程技术网

Vb.net 如何向选定的DateTimePicker添加1个月

Vb.net 如何向选定的DateTimePicker添加1个月,vb.net,datetimepicker,Vb.net,Datetimepicker,我对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 = DeptPre

我对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
我现在尝试做的是基于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
我可以在几天内把它加进去,但当我尝试在一个月内加进去时,它似乎根本不起作用

我尝试了多种不同的方法在一个月内添加,但迄今为止没有任何效果。我在30天内增加了壁橱,但这还不包括有31天的月份

Reg Start Date是日期时间选择器,而Reg End Date应该是基于lblPrevSem的天数

两个Reg开始/结束日期均显示为标签


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

您的问题是,在添加SemesterMonths值后,您正在重置EndDate的值。您应该将SemesterDays值添加到EndDate变量,而不是使用dtpStart.value.AddDays(SemesterDays)重置EndDate的值:


只需获取datetimepicker值并将.AddYears(0)或.AddDays(0)或AddMonths(0)放在后面。
但是你也可以同时使用它们

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

只需将0替换为i,并为其提供所需的值。

首先,以这种方式调用事件是一个非常糟糕的主意,事件应该表示用户交互。将代码放在一个方法中,该方法可以从任何地方调用它<代码>Dim StartDate As Date…=dtpStart.Value.ToString让我觉得选项Strict未启用。有些dtp属性可以在设计器中设置一次,而不是在方法中反复设置。我不知道这些属性可以在设计器中设置?我完全忘记了设置option strict on。好吧,该死的所有工作都是徒劳的……那么我想回去工作吧……谢谢你提醒我。我说的是格式和自定义格式——它们真的不需要在每次值更改时进行设置。您可以将选项Strict on设置为永久默认值:工具->项目和解决方案->VB默认值。要为此项目设置它,请执行以下操作:项目属性->编译选项卡/page谢谢您的提示。幸运的是,我只需要重做这个表格。很多工作都是徒劳的…讨厌这个谢谢,我重写了所有这些之后,我会研究这个问题,因为我忘了像个白痴一样严格设置选项