繁体   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