Я ищу решение C #, которое позволит мне перебирать дату назад. Начиная с текущей даты или указанной даты, я хотел бы перебрать дату, вычитая один день каждый раз через цикл в течение заданного количества дней. Конечно, он должен уметь определять, когда месяц изменился или это високосный год и т. Д., И возвращать дату в формате ММ-ДД-ГГГГ.
C # итерация назад по дате
comment
Просто чтобы дважды проверить - вы что-то делаете в цикле или просто ищете функцию вычитания даты?
- person Paddy   schedule 05.03.2012
comment
Я хочу сделать что-то в цикле для каждого дня / даты, на которые я рассчитываю в обратном порядке.
- person Baxter   schedule 05.03.2012
Ответы (3)
Должно быть достаточно просто:
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");
}
person
Øyvind Bråthen
schedule
05.03.2012
Выглядит отлично! Спасибо.
- person Baxter; 05.03.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"));
}
}
}
person
Alex Peta
schedule
05.03.2012
Зачем вводить две переменные цикла, myDate и i, когда достаточно только myDate?
- person Øyvind Bråthen; 05.03.2012
Лично я считаю, что это более читабельно, чем вставлять все в скобки for ().
- person 4imble; 05.03.2012
Вы можете использовать функцию Dateadd, которая позволяет добавлять или вычитать интервал времени до / от даты и возвращать полученную дату. В вашем случае интервал - «d» (день). См. здесь.
person
Alberto De Caro
schedule
05.03.2012