如何从2个下拉列表中获取值并将它们作为C#中的日期进行比较

时间:2014-08-26 15:34:39

标签: c# asp.net

我有2个下拉列表,显示月份和年份。我可以验证它并检查它是否少于JS中的某个日期,但现在我想做这个服务器端但我无法弄清楚如何传递所选值并将它们转换为日期函数。

UPDATE:

这是我的HTML / ASP.Net

 <asp:CustomValidator ID="CustomValidatorED" runat="server" 
 ErrorMessage=" *Enter a valid Expiry Date" Display="Dynamic" CssClass="error"
 ClientValidationFunction="ValidateED" 
 OnServerValidate="CustomValidatorED_ServerValidate"></asp:CustomValidator>

这是我的Code Behind,这是不完整的C#: -

protected void CustomValidatorED_ServerValidate(object source, ServerValidateEventArgs args)
{
    var x = EDY.SelectedValue;
      var y = EDM.SelectedValue;

      var z = x + y;
     var pppp = Convert.ToInt32(z);
     DateTime entereddate = new DateTime(pppp);

      DateTime d = DateTime.Now;
      var r = d.Month;
      var p = d.Year;

      var kkkk = r + p;

      DateTime todaysdate = new DateTime(kkkk);

      int result = DateTime.Compare(entereddate, todaysdate);

      if (result < 0)
      { args.IsValid = true; }
      else
      { args.IsValid = false; }

}

`EDY = Years Drop Down`
`EDM = Months Drop Down`

我知道我犯了一些明显的错误,但即使日期正确,也会调用此函数,因此如果输入的日期小于今天的日期,则应显示错误,但不应显示其他时间。

主要只是想修复我的代码隐藏以使其正常工作,因为我比较输入的 MM / YYYY 和今天 MM / YYYY

2 个答案:

答案 0 :(得分:0)

DateTime dtime1 = new DateTime(Convert.ToInt32(ddl1.SelectedValue));
DateTime dtime2 = new DateTime(Convert.ToInt32(ddl2.SelectedValue));

if(dtime1.equals(dtime2))
   doSomething();
//Conversion to comparing Date

DateTime date1 = dtime1.Date;
DateTime date2 = dtime2.Date;

上面的代码就像你想知道的那样。允许您比较下拉列表中的两个值,并将它们作为DateTimes进行比较。

答案 1 :(得分:0)

像这样的东西。如果您发现日期比较在时间等方面不起作用,您可能不得不担心如何转换日期(即使用格式表示)。

protected void CustomValidatorED_ServerValidate(object source, ServerValidateEventArgs args)
    {
        DateTime currentDate = DateTime.Now;

        DateTime chosenDate = Convert.ToDateTime(args.Value);

        if (currentDate <= chosenDate)
        { args.IsValid = true; }
        else
        { args.IsValid = false;}

    }