[英]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.