我尝试了以下
DateTime start = Convert.ToDateTime(TextBox1.Text);
DateTime end = Convert.ToDateTime(TextBox2.Text);
if (DateTime.Now.Date == start.Date || DateTime.Now.Date == end.Date || (DateTime.Now >= start.Date && DateTime.Now <= end.Date))
{
lblResult.Text = "true";
}
else
{
lblResult.Text = "false";
}
这将验证日期范围是否也是一天。有什么方法可以减少上面的条件数量?
答案 0 :(得分:3)
DateTime start = Convert.ToDateTime(TextBox1.Text);
DateTime end = Convert.ToDateTime(TextBox2.Text);
DateTime now = DateTime.Now;
if (now >= start.Date && now <= end.Date)
{
lblResult.Text = "true";
}
else
{
lblResult.Text = "false";
}
答案 1 :(得分:1)
DateTime dateStart = Convert.ToDateTime(TextBox1.Text);
DateTime dateEnd = Convert.ToDateTime(TextBox2.Text);
if (DateTime.Now.Date == dateStart .Date || DateTime.Now.Date == dateEnd .Date || (DateTime.Now >= dateStart .Date && DateTime.Now <= dateEnd .Date))
{
lblResult.Text = "true";
}
else
{
lblResult.Text = "false";
}
在我看来,你可以省略这两项检查:
DateTime.Now.Date == dateStart .Date || DateTime.Now.Date == dateEnd .Date
自
DateTime.Now >= dateStart .Date && DateTime.Now <= dateEnd .Date
也在检查你的开始日期是今天的日期。
&lt; =意味着更小或相同。
答案 2 :(得分:1)
只需要最后一个编码,您可以在转换时使用DateTime的Date部分。使用Now的Date部分,否则如果“start”和“end”字符串相同 - 条件返回false(因为当仅采用DateTime的Date部分时,时间表示为00:00:00 .. 。)
DateTime start = Convert.ToDateTime(TextBox1.Text).Date;
DateTime now = DateTime.Now.Date;
DateTime end = Convert.ToDateTime(TextBox2.Text).Date;
if (now >= start && now <= end)
{
lblResult.Text = "true";
}
else
{
lblResult.Text = "false";
}
如果您想验证范围只包含一天,只需删除“小于”/“大于”条件:
(now = start && now = end)
因此确保“now”与“start”和“end”的日期相同,但这并非真正的“在范围内”检查。