1

特定の範囲の数値で if ステートメントを有効にしたいのですが、うまくいきません。現在コーディング中:

if (DateTime.Now.Minute == 20 - 39)
            lblMA2.BackColor = Color.Blue;
        else
            lblMA2.BackColor = Color.Gray;

投稿時の現在時刻はその範囲内にあり、私のラベルはグレーのままです。正確な値を差し込むと、同じコードが機能します。分が当たると青に変わり、通過すると灰色になります。範囲を接続しますが、何もしません。

余分な 36 行のコードを入力しなくても機能するように手伝ってくれる人はいますか?

ありがとう!

4

2 に答える 2

3

使用するif (Enumerable.Range(20, 19).Contains(DateTime.Now.Minute))

今、あなたは と比較DateTime.Now.Minuteして20 - 39います-19

私のソリューションは、20 から 39 までの値を含むコレクションを作成し、現在の分がこのコレクション内にあるかどうかを確認します。

または、分が 20 を超えて 39 を下回っているかどうかを確認することもできます (これをお勧めします。コメントの Konrad による説明を参照してください)。

于 2013-11-03T20:38:28.280 に答える
3

数値が特定の範囲内にあるかどうかを確認するには、次の&&ように、より小さい条件とより大きい条件の 2 つの条件で使用します。

if (DateTime.Now.Minute >= 20 && DateTime.Now.Minute <= 39) {
    ...
}

&&「AND」を意味します。true左側が に評価されtrue、次に右側も に評価されると、複合条件は に評価されtrueます。右側は、左側が の場合にのみ評価されtrueます。

于 2013-11-03T20:39:02.640 に答える