我有一个aspx文档,它以HTML表格的形式从数据库返回传入的航班列表。它显示当天的所有航班。生成行的部分是:
string fechha = dias + "/" + mess + "/" + años;
string fecVuel = fechha;
for (int i = 0; i <= num - 1; i++)
{
string hora = xl.ChildNodes[0].ChildNodes[i].ChildNodes[5].InnerText;
fecVuel = xl.ChildNodes[0].ChildNodes[i].ChildNodes[0].InnerText;
if (fecVuel == fechha)
{
fila = new TableRow();
我想要的是让它只能获得符合特定时间段的航班,比如当前时间前后2小时。在代码中,string hora
的值是从db中检索的飞行时间。
我尝试使用rightnow = DateTime.Now.Hour;
添加当前时间变量并添加条件,如下所示:
if (fecVuel == fecha && ((hora >= rightnow - 2) || (hora <= rightnow + 2))) {...
但它仍在生成整个表格。我甚至尝试将其更改为fecVuel != fecha
,但它没有任何改变:我对asp不太好,而且我正在使用Notepad ++进行编辑。有任何想法吗?谢谢你的时间。
答案 0 :(得分:0)
现在我们说,现在是14:00
两小时前是12:00。两个小时后,它将是16:00。
现在(14:00)将始终满足以下两个条件之一:
大于12:00或小于16:00。
如果将OR更改为AND,则必须满足两个条件。
if (fecVuel == fecha && ((hora >= rightnow - 2) && (hora <= rightnow + 2)))
如果您使用AND,则仅选择14:00到16:00之间的时间(不包括那些时间)。
答案 1 :(得分:0)
表格中的所有内容都与您的陈述相符,因为这说明了:
if (fecVuel == fecha && (( rightnow - 2 <= hora ) || (hora <= rightnow + 2))) {...
它表示任何(rightnow - 2 <= hora) OR (hora <= rightnow + 2)
---并且一切都将等于其中一个或另一个条款,无论是在目标时间之前18小时还是在目标时间之后99小时。
您需要的是:((rightnow - 2) <= hora) && (hora <= (rightnow + 2))
所以,将||
更改为&&
,您应该得到您所追求的结果。