ASP.NET:如何使用Visual Basic使用Dropdown接受每月,每季度,半年度,一段时间

时间:2016-10-28 02:17:34

标签: asp.net vb.net webformsmvp

方案。我有一个月(1-12)和年(MMYYYY)格式的下拉列表 开始日期:月份(1-12)和年份(MMYYYY)格式
结束日期:月份(1-12)和年份(MMYYYY)格式

如果我选择START DATE:10/2018(那么开始日期有效)开始日期不应超过5年,基于当前年度然后" END DATE"应该是结束日期:10/2018(这是有效的)结束日期不应该超过开始日期的5年。

问题:

  • 如何验证MonthSTART DATE:10/2018

    • 结束日期:10/2018
  • 如何验证季度

    • 开课日期:01/2018
    • 结束日期:03/2018。
    • 每季度(1月至3月,4月至6月,7月至9月,10月至12月)
  • 如何验证半年度

    • 开课日期:01/2018
    • 结束日期:06/2018
    • 半年度(1月至7月,7月至12月)
  • 如何验证年度

    • 开课日期:01/2018
    • 截止日期:12/2018

以上问题与我在下面的解释相符

  1. 每月 - 只要用户选择开始日期(距离当前日期不应超过5年)

    • 示例START DATE:10/2016结束日期应为END DATE:10/2016。的有效
  2. 季节 - 3个月。如果用户输入START DATE:10/2016,则结束时间应为END DATE:10/2016 有效

  3. 半年度 - 6个月如果用户输入开始日期:10/2016,则结束时间应为END DATE:03/2016 有效

  4. 年度 - 12个月如果用户输入开始日期:01/2016,则结束时间应为END DATE:12/2016 有效

  5. 否则 的 INVALID

  6. 输出:有效无效

    请看下面的代码

    Dim dateStart As Date=New Date(ddl_dateStartYear.SelectedValue,ddl_dateStartMonth.SelectedValue, 1)
    Dim dateEnd As Date = New Date(ddl_dateEndYear.SelectedValue, ddl_dateEndMonth.SelectedValue, 1)
    ' Today check
    If dateEnd > DateTime.Now.AddYears(5) Then
        ' Invalid
    End If
    ' Five year check
    If dateStart.AddYears(5) > dateEnd Then
        ' Invalid
    End If
    

1 个答案:

答案 0 :(得分:1)

                    If dateStart = dateEnd Then
                        'valid
                    ElseIf dateStart.AddMonths(3) = dateEnd Then
                        'valid
                    ElseIf dateStart.AddMonths(6) = dateEnd Then
                        'valid
                    ElseIf dateStart.AddMonths(12) = dateEnd Then
                        'valid
                    Else
                        MsgBox("Please choose that would match to Monthly, Quarterly, Semi-Annual, Annual Payments!")
                    End If