C# - 闹钟 - 两次相同
C# - Alarm clock - Are two times the same
我正在通过 Windows Forms 在 C# 中制作一个闹钟应用程序。到目前为止,我的时间检查器有这段无法工作的代码。
string alarm = this.dateTimePicker1.Text;
if (DateTime.Now.ToString() == alarm)
{
MessageBox.Show("Alarm");
}
DateTimePicker 配置为小时、分钟和秒。上面的代码根本不显示消息框。片段中的问题在哪里?
另外:有没有更有效的闹钟制作方法
根据需要修改以下代码。我发现比较字符串不是解决这个问题的好方法。
DateTime alarm = this.dateTimePicker1.Value.Date;
if (DateTime.Compare(DateTime.Now.Date, alarm) == 0) {
MessageBow.Show("Alarm"); }
因为它是一个闹钟,所以您需要进行包括时间在内的比较。也就是说,比较 DateTime 对象的 .Ticks 值:
if(DateTime.Now.Ticks >= this.DateTimePicker1.Value.Ticks)
{
// Sound the alarm
}
根据您使用的 DateTimePicker 的工作方式,您可能需要在比较之前检查值为 null。
问题是您正在寻找完全匹配。相反,您应该查看闹钟时间是否已过(因此“>=”)。此外,字符串比较不适用于日期时间。您需要比较 date/times:
string alarm = this.dateTimePicker1.Value;
if (DateTime.Now() >= alarm)
{
MessageBox.Show("Alarm");
}
试试这个让你继续:
需要比较小时和分钟。
private void CheckTime()
{
clock.Text = DateTime.Now.ToString("hh:mm:ss");
date.Text = DateTime.Now.ToLongDateString();
DateTime alarm = this.dateTimePicker1.Value;
DateTime currentTime = DateTime.Now;
if (alarm.Hour == currentTime.Hour && alarm.Minute == currentTime.Minute)
{
timer1.Enabled = false;
MessageBox.Show("Alarm");
}
}
我正在通过 Windows Forms 在 C# 中制作一个闹钟应用程序。到目前为止,我的时间检查器有这段无法工作的代码。
string alarm = this.dateTimePicker1.Text;
if (DateTime.Now.ToString() == alarm)
{
MessageBox.Show("Alarm");
}
DateTimePicker 配置为小时、分钟和秒。上面的代码根本不显示消息框。片段中的问题在哪里?
另外:有没有更有效的闹钟制作方法
根据需要修改以下代码。我发现比较字符串不是解决这个问题的好方法。
DateTime alarm = this.dateTimePicker1.Value.Date;
if (DateTime.Compare(DateTime.Now.Date, alarm) == 0) {
MessageBow.Show("Alarm"); }
因为它是一个闹钟,所以您需要进行包括时间在内的比较。也就是说,比较 DateTime 对象的 .Ticks 值:
if(DateTime.Now.Ticks >= this.DateTimePicker1.Value.Ticks)
{
// Sound the alarm
}
根据您使用的 DateTimePicker 的工作方式,您可能需要在比较之前检查值为 null。
问题是您正在寻找完全匹配。相反,您应该查看闹钟时间是否已过(因此“>=”)。此外,字符串比较不适用于日期时间。您需要比较 date/times:
string alarm = this.dateTimePicker1.Value;
if (DateTime.Now() >= alarm)
{
MessageBox.Show("Alarm");
}
试试这个让你继续:
需要比较小时和分钟。
private void CheckTime()
{
clock.Text = DateTime.Now.ToString("hh:mm:ss");
date.Text = DateTime.Now.ToLongDateString();
DateTime alarm = this.dateTimePicker1.Value;
DateTime currentTime = DateTime.Now;
if (alarm.Hour == currentTime.Hour && alarm.Minute == currentTime.Minute)
{
timer1.Enabled = false;
MessageBox.Show("Alarm");
}
}