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

本文关键字:日期 net 三个 何获得 | 更新日期: 2023-09-27 18:02:10

我想从当前日期中获得3个日期,或者如果用户输入16/07/2011这样的日期,我想显示此日期之前的3个日期,如

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

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

步骤简单:

  • 解析日期为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
}

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