2015-02-06 43 views
0

我的应用程序检查用户选择的组合框中的DateTime.Now。我的问题是,我试图加入到检查它是否是上午还是下午通过上午/下午时间没有发生的动作

if (DateTime.Now.Hour == tbox1 && DateTime.Now.Minute == tbox2 && DateTime.Now.ToString("tt") == comboBox5.Text)

comboBox5只能AMPM),但是没有发生。

这是所有在当地时间,使用户更友好的用户。

private void timer1_Tick(object sender, EventArgs e) 
{ 
    int tbox1 = int.Parse(comboBox1.Text); 
    int tbox2 = int.Parse(comboBox2.Text); 
    int tbox3 = int.Parse(comboBox3.Text); 
    int tbox4 = int.Parse(comboBox4.Text); 

    if (DateTime.Now.Hour == tbox1 
     && DateTime.Now.Minute == tbox2 
     && DateTime.Now.ToString("tt") == comboBox5.Text) 
    { 
     Form2 form2 = new Form2(textBox1.Text); 
     form2.Show(); 
     simpleSound.Play(); 
    }   

    if (DateTime.Now.Hour == tbox3 
     && DateTime.Now.Minute == tbox4 
     && DateTime.Now.ToString("tt") == comboBox6.Text) 
    { 
     Form2 form2 = new Form2(textBox2.Text); 
     form2.Show(); 
     simpleSound.Play(); 
    } 
} 

任何帮助或见解将不胜感激。

+0

您是否尝试过使用断点来验证“tbox”的值是您认为的值?你真的进入'if'语句吗? – 2015-02-06 14:20:03

+0

是的。几小时的限制为1-12分钟,1-60分钟。 – EyeSeeSharp 2015-02-06 14:23:23

+0

什么是您的'CurrentCulture'? – 2015-02-06 14:27:50

回答

0

DateTime.Now.Hourper the API,返回“小时分量,表示为0到23之间的值”。

如果您希望它表示为1-12之间的#,则必须使用ToString并指定格式。

DateTime.Now.ToString("%h"); 

将返回1-12之间的小时。

+0

对不起,我究竟会把这个放在哪里? – EyeSeeSharp 2015-02-06 14:50:18

+0

无论你有'DateTime.Now.Hour == tbox1'。现在,我猜这是晚上8点22分,你在哪里。 DateTime.Now.Hour返回为20.您希望它返回8.'DateTime.Now.ToString(“%h”);'将返回8。 – Mike 2015-02-06 14:53:13

相关问题