2016-09-28 24 views
0

我想比較使用DateTime.Now的當前日期到選定假期的硬編碼列表以測試當前日期是否等於假期。我剛剛開始使用C#,所以我不想尋找一個優雅的答案,我只是想與我必須瞭解的結果一起工作。如何簡單地比較當前日期是否是假期

<script Language="c#" runat="server"> 
    void Page_Load() 
    { 
    DateTime date = DateTime.Now; 
    dateToday.Text = " " + date.ToString("d"); 

    string newYear = "01/01/2016"; 
    if (newYear == dateTime.Now){ 
     message.Text = ("This is New Years"); 
     } 
    } 
    <body> 
    <asp:label id="message" runat="server"/> 
    </body> 
+0

提示:字符串不是日期....(反之亦然) –

+0

您不允許將字符串與字符串日期進行比較嗎?我認爲將DateTime.Now轉換爲字符串將允許我將它與另一個(字符串)日期進行比較? – penmas

+0

時間部分..... –

回答

1

我會用DateTime.Date property比較日期,這裏是一個例子

DateTime now = DateTime.Now; 
DateTime newYear = new DateTime(2016, 1, 1); 
// or DateTime newYear = DateTime.Parse("01/01/2016"); 

if (newYear.Date == now.Date){ 
    message.Text = "This is new years"; 
} 

你是最好的日期打交道時使用DateTime結構,因爲它傳達不是一個字符串更多的含義。當您想要執行更復雜的操作時,您還可以在排序,過濾,操作和顯示數據方面獲得更多靈活性。例如:

var holidays = new List<DateTime> { new DateTime(2016, 1, 1), new DateTime(2016, 12, 25) }; 
var now = DateTime.Now; 

if (holidays.contains(now.Date){ 
    message.Text = "Today is a holiday!"; 
} 
2

不要使用字符串比較日期。有很多不同的方式來表示日期以將它們可靠地作爲字符串進行比較。他們作爲比較時間(和使用Today代替Now忽略時間部分):

string newYear = new DateTime(2016,1,1); 
if (newYear == DateTime.Today) 
+0

你通常不能比較c#中的兩個字符串,還是僅僅是比較兩個項目的最佳做法? – penmas

+2

@penmas你沒有比較2個字符串。您正在比較字符串和日期 – deviantxdes

+1

您可以比較兩個_strings_,但它是_literal_比較。 「01/01/2016」和「2016-01-01」是相同的_date_但不同的_strings_。 –

0

解析字符串轉換成日期DateTime.Parse()並進行比較。

if (DateTime.Parse(newYear)== DateTime.Now.Date) 
相關問題