如何简单比较当前日期是否为假日

时间:2016-09-28 01:38:02

标签: c# datetime

我正在尝试使用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>

3 个答案:

答案 0 :(得分:2)

不要使用字符串比较日期。有太多不同的方法来表示日期,以便可靠地将它们作为字符串进行比较。将它们作为日期进行比较(并使用Today代替Now来忽略时间部分):

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

答案 1 :(得分: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结构,因为它传达的意义比字符串更多。当您想要执行更复杂的操作时,您还可以更灵活地排序,过滤,操作和显示数据。 e.g:

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 :(得分:0)

将字符串解析为日期DateTime.Parse()并进行比较。

if (DateTime.Parse(newYear)== DateTime.Now.Date)