提醒时间&日期匹配

本文关键字:日期 时间 | 更新日期: 2023-09-27 17:50:37

我正在创建一个提醒来匹配用户输入的日期和时间。我可以通过使用TimerScriptManager获得当前日期和时间。但是我不知道如何将日期和时间与用户输入进行比较,并在匹配后使下面的标签可见。什么好主意吗?

下面是我的代码:
public partial class Reminder : System.Web.UI.Page
{
private void UpdateTimer()
{
    LabelCurrentTime.Text = System.DateTime.Now.ToLongTimeString();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
    UpdateTimer();
}
protected void Button1_Click(object sender, EventArgs e)
{
    string currentdate = LabelCurrentDate.Text;
    string currenttime = LabelCurrentTime.Text;
    string reminderdate = TextBoxReminderDate.Text;
    string remindertime = TextBoxReminderTime.Text;
    Timer1.Enabled = true;
    LabelCurrentTime.Text = System.DateTime.Now.ToLongTimeString();
    LabelCurrentDate.Text = System.DateTime.Now.Date.ToShortDateString();
    if (currentdate == reminderdate)
    {
        if (currenttime == remindertime)
        {
            Label1.Visible = true;
        }
    }
}
protected void Button2_Click(object sender, EventArgs e)
{
    Timer1.Enabled = false;
}
}

下面是截图:截图

提醒时间&日期匹配

您正在尝试将日期作为字符串处理。你不应该那样做。

首先,您不应该接受来自Textbox的日期作为用户输入。有一个特定的DateTimePicker控件专门用于让用户选择日期。你应该用它

如果您使用日期选择器为用户提供日期,那么您可以使用DateTime.Now获得当前日期。现在有了两个实际日期,可以使用>运算符对它们进行比较。

像这样解析日期和时间:

var dt = DateTime.Parse(currentDate+" "+currentTime);
var dt2 = DateTime.Parse(reminderDate+" "+reminderTime);

然后使用DateTime。方法来比较DateTime对象。

考虑以下内容:

var val = DateTime.Compare(dt,dt2);

如果val为0,则日期和时间相同。

如果val大于0,则currentDate已经超过了reminderDate,如果val小于0,则currentDate在reminderDate之前。