我想从今天起打印一组日期。 例如:如果今天是06年1月6日,CutOff值为10,则代码应该给我10天,直到28日 - 12月13日。
以下是我的尝试:
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);
}
这给出了正确的日期,但每次都打印1月。
非常感谢任何线索。
感谢。
答案 0 :(得分:1)
当然它确实......你只计算一个月中的某一天,你不会重新计算整个日期。
如果你说
DateTime olderDate = DateTime.Today.AddDays(-i);
然后您的oldDate将包含您正在寻找的正确日期。
答案 1 :(得分:1)
问题是你只是更新了一天,而不是日期(因此错过了一个月)。
这样的事情怎么样?
foreach (DateTime date in Enumerable.Range(0, 10)
.Select(r => DateTime.Now.Date.AddDays(-r)))
{
Console.WriteLine(date.Day + " " + date.Month);
}
答案 2 :(得分:1)
for (int i = 0; i < 10; i++)
{
DateTime date = DateTime.Now.AddDays(-i);
Console.WriteLine(String.Format("{0:d MMMM}",date));
}
答案 3 :(得分:0)
这是你的罪魁祸首:
string month = DateTime.Now.ToString("MMMMMMMM");
这将始终为您提供当前日期和月份的月份。时间。鉴于您在1月份运行代码,它始终输出1月份。如果你下个月运行代码,它将始终输出二月。
答案 4 :(得分:0)
for (int i = 0; i < 10; i++)
{
var newDate = DateTime.Now.AddDays(-i);
Console.WriteLine(newDate.Day + " " + newDate.Month);
}