我有三个文本框:StartTextbox、EndTextBox和Textbox3,其中Textbox3包含No of Month。现在我希望根据No of Month检查开始日期和结束日期的差异。
下面是自定义验证函数:
protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
DateTime start = DateTime.Parse(StartTextBox.Text);
DateTime end = DateTime.Parse(EndTextBox.Text);
int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);
e.IsValid = months <= TextBox3;
}发布于 2012-04-29 14:02:56
如果您想用TextBox3的值检查months (一个int),那么您必须首先获得一个string形式的值,并将其转换为int。例如:
protected void ValidateDuration(object sender, ServerValidateEventArgs e)
{
DateTime start = DateTime.Parse(StartTextBox.Text);
DateTime end = DateTime.Parse(EndTextBox.Text);
int months = (end.Month - start.Month) + 12 * (end.Year - start.Year);
int noOfMonth = int.Parse(TextBox3.Text);
e.IsValid = months <= noOfMonth;
}发布于 2012-04-29 14:18:54
您可以通过使用覆盖操作来获取两个日期之间的月数-以获取两个日期之间的时间跨度:
DateTime date1 = new DateTime();
DateTime date2 = new DateTime();
date1 = DateTime.Now;
date2 = DateTime.Now.AddMonths(4);
TimeSpan months = date2 - date1;
Console.WriteLine(months.Days / 30);此代码片段将显示4个月
对于您的代码:
e.IsValid = months <= Int32.TryParse(TextBox3.Text);https://stackoverflow.com/questions/10370059
复制相似问题