提醒时间&日期匹配

时间:2013-01-04 14:53:19

标签: c# asp.net sql

我正在创建一个提醒,以匹配用户输入的日期和时间。我可以使用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;
}
}

以下是截图: screenshot

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

像这样解析你的日期和时间:

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

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

请考虑以下事项:

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

如果val为0,则日期和时间相同。如果val大于0,则currentDate已通过reminderDate,如果val小于零,则currentDate在提醒日期之前。