我希望获取从当前日期开始的3个日期,或者如果用户输入类似于
16/07/2011
这样的日期,则我想显示此日期的前3个日期,例如15/07/2011, 14/07/2011, 13/07/2011
。简单的步骤:
DateTime
类型。如果您知道要使用的格式,建议使用 DateTime.ParseExact
或 DateTime.TryParseExact
。DateTime.AddDays(-1)
来获取前一天的日期(可以是与原来不同的值,也可以始终从“新”日期减去一天)。例如:
string text = "16/07/2011";
Culture culture = ...; // The appropriate culture to use. Depends on situation.
DateTime parsed;
if (DateTime.TryParseExact(text, "dd/MM/yyyy", culture, DateTimeStyles.None,
out parsed))
{
for (int i = 1; i <= 3; i++)
{
Console.WriteLine(parsed.AddDays(-i).ToString("dd/MM/yyyy"));
}
}
else
{
// Handle bad input
}
只需使用 TimeSpan
对象或 AddDays
函数。以下是示例扩展方法,您可以轻松修改天数:
public static DateTime SubtractDays(this DateTime time, int days)
{
return time - new TimeSpan(days, 0, 0, 0);
}
public static DateTime SubtractDays(this DateTime time, int days)
{
return time.AddDays(days)
}
.Date
属性。根据您的用途,您可能想这样做,以确保安全。 - Merlyn Morgan-Graham