[英]Asp.net Calendar - Generating dates
作為項目的一部分,我試圖僅使用C#從背后的代碼中在Asp.net中創建一個日歷,我正在使用中繼器並從其背后的代碼中填充內容,這工作正常。 我可以使用Datetime獲取今天的日期月份等。
但是,當我嘗試計算一周中前幾天和下幾天的日期時,代碼變得非常混亂,我想知道是否有更好的方法可以做到。
目前,這是我生成特定日期的日期的方式。
if (today == "Monday" || today.Equals("Monday"))
{
switch (days)
{
case "0":
return DateTime.Today.AddDays(0).ToString("dd");
case "1":
return DateTime.Today.AddDays(1).ToString("dd");
case "2":
return DateTime.Today.AddDays(2).ToString("dd");
case "3":
return DateTime.Today.AddDays(3).ToString("dd");
case "4":
return DateTime.Today.AddDays(4).ToString("dd");
case "5":
return DateTime.Today.AddDays(5).ToString("dd");
case "6":
return DateTime.Today.AddDays(6).ToString("dd");
default:
return "error";
}
}
然后在星期二
else if (today == "Tuesday" || today.Equals("Tuesday"))
{
switch (days)
{
case "0":
return DateTime.Today.AddDays(-1).ToString("dd");
case "1":
return DateTime.Today.AddDays(0).ToString("dd");
case "2":
return DateTime.Today.AddDays(1).ToString("dd");
case "3":
return DateTime.Today.AddDays(2).ToString("dd");
case "4":
return DateTime.Today.AddDays(3).ToString("dd");
case "5":
return DateTime.Today.AddDays(4).ToString("dd");
case "6":
return DateTime.Today.AddDays(5).ToString("dd");
default:
return "error";
}
}
因此,在星期二的示例中,情況“ 0”是星期一,因此,如果是星期二,我將從當前日期減去1天以獲得前一天的日期。 該代碼工作得很好,但是我不禁想到必須有更好的方法
而且我必須為一周的每一天創建這段代碼,唯一真正改變的是“ AddDays()”中的整數
還請注意進行切換的原因是,所有的if語句都在for循環內被調用,因此切換中的情況很奇怪。
如果有比我聰明的人可以更輕松地完成此任務,請隨時告訴我。
我不太了解days變量的含義,但我假設這是您要前進或后退的天數。您可以簡單地使用以下代碼:
return DateTime.Today.AddDays(days + todayDateTime.DayOfWeek).ToString("dd");
然后,您可以使用“天”變量(1或-1)控制第二天和前一天。 是否有意義?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.