簡體   English   中英

Asp.net日歷-生成日期

[英]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循環內被調用,因此切換中的情況很奇怪。

如果有比我聰明的人可以更輕松地完成此任務,請隨時告訴我。

  • 最好的問候安德烈亞斯·霍爾德(Andreas Hald)。

我不太了解days變量的含義,但我假設這是您要前進或后退的天數。您可以簡單地使用以下代碼:

return DateTime.Today.AddDays(days + todayDateTime.DayOfWeek).ToString("dd");

然后,您可以使用“天”變量(1或-1)控制第二天和前一天。 是否有意義?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM