0

我正在创建一个提醒以匹配用户输入的日期和时间。我可以使用 aTimer和获取当前日期和时间ScriptManager。但我不知道如何将日期和时间与用户输入进行比较,并在匹配后使下面的标签可见。有任何想法吗?

这是我的代码:

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

4

2 回答 2

3

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

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

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

于 2013-01-04T15:04:07.377 回答
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 已超过提醒日期,如果 val 小于零,则 currentDate 在提醒日期之前。

于 2013-01-04T15:00:19.367 回答