0

假设我有一个密码数组......

      var pass = new int[5];
        pass[0] = 111111;
        pass[1] = 222222;
        pass[2] = 333333;
        pass[3] = 444444;
        pass[4] = 555555;

并验证当前时间。例如,您有一个从上午 7:30:00 到上午 11:30:00 的时间表,如果还没有到 7:30,并且已经过了 11:30,您将无法获取密码。但是在那个时间范围内,没关系,你可以得到你的密码。单击 Button1 后(w/c 表示您已获得授权 - 时间正确),将出现一个消息框,显示如下内容,

您的密码是 111111。

以此类推,直到所有密码用完,然后又回到密码111111、222222、333333等……我该怎么办?比如什么时间格式?我很难进行时间比较。谢谢。

4

1 回答 1

2

函数isValidTime仅在一天中的几个小时检查时间。

您可以使用模运算来包装您的密码,如下所示。

以下对我有用:

    private int currentPassword = -1;
    private int[] passwords = new int[]{111111,222222,333333,444444,555555};

    private DateTime startTime = new DateTime(2012, 7, 18, 22, 0, 0);
    private DateTime endTime = new DateTime(2012, 7, 18, 22, 15, 0);

    private void button1_Click(object sender, EventArgs e)
    {
        if (isValidTime(DateTime.Now))
        {
            currentPassword++;
            currentPassword = currentPassword % passwords.Length;

            MessageBox.Show(passwords[currentPassword].ToString());
        }
        else
        {
            MessageBox.Show( "Try again at a different time" );
        }
    }

    private bool isValidTime( DateTime now )
    {
        if ( startTime.TimeOfDay.CompareTo(now.TimeOfDay) <= 0)
        {
            if ( now.TimeOfDay.CompareTo(endTime.TimeOfDay) <= 0)
            {
                return true;
            }
        }
        return false;
    }

只需启动一个新的 windows 窗体,添加一个 button1,这段代码就可以工作了。

于 2012-07-19T04:16:45.997 回答