2013-01-04 121 views
0

我正在創建提醒以匹配用戶輸入的日期和時間。我可以使用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

回答

3

您試圖將日期作爲字符串處理。你不應該那樣做。

首先,您不應該接受日期作爲Textbox的用戶輸入。有一個具體的DateTimePicker控件專門用於讓用戶選擇一個日期。你應該使用它。

如果您使用日期選擇器爲用戶提供日期,那麼您可以使用DateTime.Now獲取當前日期。現在您有兩個真實日期,您可以使用>運算符對它們進行比較。

+0

嗨Servy,我找不到DateTimePicker控件在我的工具箱 – Ching

+0

@Ching嗯......看來,我正在使用的是特定於我正在使用的另一個框架,它不是原生ASP。如果您願意,您可以找到第三方實施(Google會顯示幾個)。另一種選擇是使用'DateTime.ParseExact'解析文本框中的日期到字符串的日期,但要確保您不會將當前時間轉換爲字符串並解析它;只需使用'DateTime.Now'中的當前時間。 – Servy

+0

我應該如何使用DateTime.ParseExact解析日期?對不起,我還是這個初學者。你能告訴我一些如何做到這一點的例子嗎?謝謝。 – Ching

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之前。

+0

你不應該把你的時間,將它們轉換爲字符串,解析它們,然後再次比較它們。你應該從一開始就把它們保留爲日期時間值。 – Servy

+0

絕對同意,但在這個例子中,他正在嘗試做什麼。我只是簡單地提供一個簡單的答案,儘管從設計角度來看它仍然不正確。 – Marcus

+0

所以你應該告訴他不要這麼做,而不是幫助他正確實施不正確的做法。如果你不幫他修復底層方法,他甚至不知道這是一個壞主意。另外,爲了比較日期,您可以使用'>'或'<'運算符,通常不需要使用'Compare'。 – Servy

相關問題