C # итерация назад по дате - PullRequest
1 голос
/ 05 марта 2012

Я ищу решение C #, которое позволило бы мне повторять в обратном порядке по дате. Начиная с текущей даты или предоставленной даты, я хотел бы зациклить дату, вычитая один день каждый раз через цикл на определенное количество дней. Конечно, он должен быть в состоянии определить, когда месяц изменился или это високосный год и т. Д., И вернуть дату в формате ММ-ДД-ГГГГ.

Ответы [ 4 ]

5 голосов
/ 05 марта 2012

Должно быть достаточно просто:

var givenNumberOfDays = 30;
for( DateTime day = DateTime.Now; day > DateTime.Now.AddDays( -givenNumberOfDays); day = day.AddDays(-1) )
{
  //perform your logic here
  var dateInCorrectFormat = day.ToString("MM-dd-yyyy");
}
2 голосов
/ 05 марта 2012
public IEnumerable<DateTime> Dates(int nDays)
{
    DateTime dt = DateTime.Now;
    yield return dt;
    for(int i=0;i<nDays-1;i++)
    {
        dt = dt.AddDays(-1);
        yield return  dt;
    }

}

foreach (var dt in Dates(10))
{
     Console.WriteLine(dt.ToString("MM-dd-yyyy"));
}
1 голос
/ 05 марта 2012

это будет повторять обратные слова:

class Program
{
    static void Main(string[] args)
    {

        DateTime myDate = DateTime.Now;

        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(myDate.AddDays(-i).ToString("MM-dd-yyyy"));
        }


    }
}
0 голосов
/ 05 марта 2012

Вы можете использовать функцию Dateadd, которая позволяет вам добавлять или вычитать интервал времени к / от даты и возвращать полученную дату. В вашем случае интервал «d» (день). Смотрите здесь .

...