我正在尝试使用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 :(得分: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)