如何获取给定日期.net的前三个日期

时间:2011-07-16 07:01:18

标签: c# asp.net

我想从当前日期获取3个日期,或者如果用户输入16/07/2011之类的日期,我想显示之前的3个日期

15/07/2011,14/07/2011,13/07/2011

2 个答案:

答案 0 :(得分:8)

简单步骤:

  • 将日期解析为DateTime。如果您知道要使用的格式,我建议您使用DateTime.ParseExactDateTime.TryParseExact
  • 使用DateTime.AddDays(-1)获取上一个日期(使用与原始日期不同的值,或者始终为-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
}

答案 1 :(得分:0)

只需使用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)
    }