Подтвердить что ты не робот

Как получить вчера дату в С#

Я хочу получить вчерашнюю дату в своем веб-приложении ASP.NET с помощью С#.

Я уже выкопал тему, но, думаю, я не смог ее понять.

Код, который я использую, просто дает мне сегодняшнюю дату

        string yr = DateTime.Today.Year.ToString();
        string mn = DateTime.Today.Month.ToString();
        string dt = DateTime.Today.Day.ToString();
        date = string.Format("{0}-{1}-{2}", yr, mn, dt);

Как я могу это сделать?

Спасибо в Advance:)

4b9b3361

Ответ 1

Используйте метод DateTime.AddDays() со значением -1

var yesterday = DateTime.Today.AddDays(-1);

Это даст вам: {6/28/2012 12:00:00 AM}

Вы также можете использовать

DateTime.Now.AddDays(-1)

Это даст вам предыдущую дату с текущим временем, например. {6/28/2012 10:30:32 AM}

Ответ 2

Код, который вы опубликовали, неверен.

Вы не должны делать несколько вызовов DateTime.Today. Если вам удастся запустить этот код так же, как и изменения даты, вы можете получить совершенно неправильные результаты. Например, если вы запустили его 31 декабря 2011 года, вы можете получить "2011-1-1".

Используйте один вызов DateTime.Today, затем используйте ToString с соответствующей строкой формата, чтобы отформатировать дату по вашему желанию.

string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");

Ответ 3

var yesterday = DateTime.Now.AddDays(-1);

Ответ 4

Вы получите вчерашний день следующим фрагментом кода.

DateTime dtYesterday = DateTime.Now.Date.AddDays(-1);

Ответ 5

Что-то вроде этого должно работать

var yesterday = DateTime.Now.Date.AddDays(-1);

DateTime.Now дает текущую дату и время.

Если вы хотите удалить элемент времени, то добавление .Date ограничивает его только датой, т.е. время 00:00:00.

Наконец .AddDays(-1) удаляет 1 день, чтобы дать вам вчера.

Ответ 6

Вам не нужно вызывать DateTime.Today несколько раз, просто используйте его один раз и отформатируйте объект даты в своем формате желаний.. вот так

 string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");

ИЛИ

 string result = DateTime.Today.AddDays(-1).ToString("yyyy-MM-dd");

Ответ 7

string result = DateTime.Now.Date.AddDays(-1).ToString("yyyy-MM-dd");

Ответ 8

DateTime.Today, так как это означает сегодняшнюю дату, и вам нужно получить дату за день до этого, чтобы вычесть один день с помощью AddDays(-1);

В DateTime есть достаточные параметры, чтобы получить форматирование, подобное ToShortDateString, в зависимости от вашей культуры, и вам не нужно их конкатенировать отдельно.

Также вы можете иметь желаемый формат в версии .ToString() экземпляра DateTime