我正在尝试打印今天的一组日期。例如:如果今天是 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);
}