【发布时间】:2013-02-03 10:12:26
【问题描述】:
我问的是SchoolYear。
就像这个例子
2013-2014 (StartYear-EndYear)
如何验证用户是否真正进入学年(例如2013-2014)
这是我迄今为止尝试过的。
private void TextBox_Validating(object sender, CancelEventArgs e)
{
if (!string.IsNullOrWhiteSpace(studentLastSchoolAttendedSchoolYearTextBox.Text))
{
int fromYear = 0;
int toYear = 0;
string[] years = Regex.Split(studentLastSchoolAttendedSchoolYearTextBox.Text, @"-");
fromYear = int.Parse(years.FirstOrDefault().ToString());
if (fromYear.ToString().Length == 4)
{
if (years.Count() > 1)
{
if (!string.IsNullOrWhiteSpace(years.LastOrDefault()))
{
toYear = int.Parse(years.LastOrDefault().ToString());
if (fromYear >= toYear)
{
e.Cancel = true;
MessageBox.Show("The 'From Year' must be lesser than to 'To Year'.\n\nJust leave as a empty to avoid validating.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
else
{
e.Cancel = true;
MessageBox.Show("Please enter a valid School range Year format.\nEx.: 2010-2011\n\nJust leave as empty to avoid validating.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
else
{
studentLastSchoolAttendedSchoolYearTextBox.Text = fromYear.ToString() + "-" + Convert.ToInt32(fromYear + 1).ToString();
}
}
else
{
e.Cancel = true;
MessageBox.Show("Please enter a valid School range Year format.\nEx.: 2010-2011\n\nJust leave as empty to avoid validating.", Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}
【问题讨论】:
-
对于拥有如此高声誉的人来说,这似乎是一个低质量问题!
-
什么是正确的格式?
-
@spajce 这完全没有帮助。您来到这里并发布了您正在使用的代码 sn-p。你当初为什么来这里?你的解决方案有什么问题?在某些情况下它会返回不正确的值吗?它会抛出异常吗?是不是太慢了?还不够漂亮吗?你只是无聊并想打发时间吗?什么?
-
@spajce 不,一点都不清楚。你来到这里显然是因为你有一个你想要解决的问题。我们不知道那个问题是什么,所以我们无法做出任何合理的尝试来解决它。您是否不知道您的函数应该 的有效输入是什么,这意味着您不知道哪些类型的字符串应该是有效的(在代码之外,只是自己查看),如果是这样,这是题外话,我们真的不能帮助你。你需要自己弄清楚。