0

ユーザー入力からの日付と時刻に一致するリマインダーを作成しています。とを使用して、現在の日付と時刻を取得できTimerます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;
}
}

これがスクリーンショットです: スクリーンショット

4

2 に答える 2

3

日付を文字列として処理しようとしています。あなたはそれをすべきではありません。

まず、からのユーザー入力として日付を受け入れるべきではありませんTextboxDateTimePickerユーザーに日付を選択させるための特定のコントロールがあります。あなたはそれを使うべきです。

ユーザーが日付を指定するために日付ピッカーを使用する場合は、を使用して現在の日付を取得できますDateTime.Now>2つの実際の日付があるので、演算子を使用してそれらを比較できます。

于 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はreminderDateを通過し、valがゼロより小さい場合、currentDateはreminderDateの前にあります。

于 2013-01-04T15:00:19.367 に答える