0

データベースからの到着便のリストをHTMLテーブルの形式で返すaspxドキュメントがあります。当日のすべてのフライトが表示されます。行を生成する部分は次のとおりです。

    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データベースから取得された飛行時間です。

次のように、現在の時刻変数をrightnow = DateTime.Now.Hour;追加して条件付きを追加してみました。

if (fecVuel == fecha && ((hora >= rightnow - 2) || (hora <= rightnow + 2))) {...

しかし、それでもテーブル全体が生成されています。に変更しようとしましたfecVuel != fechaが、何も変更されません:S aspがあまり得意ではなく、編集にNotepad++を使用しています。何か案は?御時間ありがとうございます。

4

2 に答える 2

0

今、14:00だとしましょう

2時間前は12時。2時間で16時です。

現在 (14:00) は常に次の 2 つの条件のいずれかを満たします。

12:00 を超える、または 16:00 未満。

OR を AND に変更する場合は、両方の条件を満たす必要があります。

if (fecVuel == fecha && ((hora >= rightnow - 2) && (hora <= rightnow + 2)))

AND を使用すると、14:00 から 16:00 までの時間 (これらの時間を含まない) のみが選択されます。

于 2012-06-18T22:09:10.243 に答える
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))

したがって、をに変更する||と、目的&&の結果が得られるはずです。

于 2012-06-18T22:18:05.360 に答える