如何在C#编码中根据财务年度设置RaddatePicker最小日期和最大日期?

时间:2012-08-01 05:50:34

标签: c# asp.net-ajax telerik rad-controls

我正在为我的项目使用ASP RadControls。我想知道如何根据财政年度设置MinDate和MaxDate。我尝试下面的代码,但我没有得到如何设置最小值和最大值为datepicker。请帮助我。

     string finyear = ViewState["FIN_YR"].ToString();//viewstate["FIN_YR"]="1112"
     string pr = finyear.Substring(0, 2);//pr="11"
     string pr1 = "20";
     string year1 =pr1+pr;//year1="2011"
     int firstyear = Convert.ToInt32(year1);
     string pa = finyear.Substring(2, 2);//pa="12"
     string year2 = pr1 + pa;//year2="2012"
     int Secondyear = Convert.ToInt32(year2);
     dtpRemitDate.MinDate = System.DateTime.Parse("firstyear/4/1");

我试过这样但System.DateTime.Parse("int,int,int");只能接受。如何将min Date设置为datepicker?

1 个答案:

答案 0 :(得分:4)

首先,我会尝试构建更少的字符串操作。看起来你只需要两个:

  • 用隐含的“2000”基础解析分钟年
  • 使用隐含的“2000”基础解析最大年份

根据DateTimeint完成其余工作:

string financialYearText = ViewState["FIN_YR"].ToString();
int minYear2Digits = int.Parse(financialYearText.Substring(0, 2));
int maxYear2Digits = int.Parse(financialYearText.Substring(2, 2));
dtpRemitDate.MinDate = new DateTime(minYear2Digits + 2000, 4, 1);
dtpRemitDate.MaxDate = new DateTime(maxYear2Digits + 2000, 4, 1);

这假设总是基于2000年 - 如果您有“旧”记录,例如“8788”应该意味着1987年和1988年,你需要做更多的工作。