在 .NET 中按时间倒序获取日期



我正在尝试打印今天的一组日期。例如:如果今天是 06-Jan-14,截止值是 10,则代码应该给我 10 天的时间,直到 12 月 28 日。

这是我尝试过的:

for (int i = 0; i < 10; i++)
            {
                string month = DateTime.Now.ToString("MMMMMMMM");
                int day = (int)DateTime.Now.AddDays(-i).Day;
                Console.WriteLine(day + " " + month);
            }

这给出了正确的日期,但每次都打印一月。

任何线索都非常感谢。

谢谢。

for (int i = 0; i < 10; i++)
{
  DateTime date = DateTime.Now.AddDays(-i);
  Console.WriteLine(String.Format("{0:d MMMM}",date));
}

当然...您只是在计算月份中的某一天,而不是重新计算整个日期。

如果你说

DateTime olderDate = DateTime.Today.AddDays(-i);

那么您的旧日期将包含您要查找的正确日期。

问题是你只更新了日期,而不是日期(因此错过了月份)。

这样的事情呢?

foreach (DateTime date in Enumerable.Range(0, 10)
    .Select(r => DateTime.Now.Date.AddDays(-r)))
{
    Console.WriteLine(date.Day + " " + date.Month);
}
这是

你的罪魁祸首:

string month = DateTime.Now.ToString("MMMMMMMM");

这将始终为您提供从当前日期和时间开始的月份。假设您在一月份运行代码,它总是输出一月份。如果下个月运行代码,它将始终输出 2 月。

for (int i = 0; i < 10; i++)
        {
            var newDate = DateTime.Now.AddDays(-i);
            Console.WriteLine(newDate.Day + " " + newDate.Month);
        }

最新更新