Установка времени к 23:59:59 [дубликат]

29
задан Community 23 May 2017 в 11:55
поделиться

7 ответов

Это возможное решение:

yourDateTime.Date.AddHours(23).AddMinutes(59).AddSeconds(59);
54
ответ дан 28 November 2019 в 00:41
поделиться

Почему бы не использовать верхнее сравнение - это полночь дня после последнего интересующего вас, а затем использовать его с эксклюзивным сравнением?

DateTime upperExclusive = lastInclusive.Date.AddDays(1);
if (dateInclusive >= date && date < upperExclusive)
{
    ....
}

Это кажется более чистым решением, чем поиск последней секунды дня - помимо всего прочего, в вашей текущей схеме все равно будут отсутствовать значения 23: 59: 59.500 и т. д.

Обязательный плагин: я не большой поклонник BCL date / time API. Вы можете следить за Noda Time - портом Joda Time на .NET.

38
ответ дан 28 November 2019 в 00:41
поделиться

Просто используйте на день позже, чем верхнее сравнение, и < в верхней части вместо <= . Таким образом, вы можете получить время даже позже (доли секунды), чем указанное вами.

Как вариант, сравните, используя свойство DateTime.Date , а не DateTime напрямую. Это «уберет» временную часть, поэтому ваши даты в поиске будут автоматически считаться полуночью.

1
ответ дан 28 November 2019 в 00:41
поделиться

Создать метод расширения EndOfDay

 public static DateTime EndOfDay (this DateTime d)
    {
        return DateTime.Parse(d.ToShortDateString().Trim() + " 23:59:59");
    }
4
ответ дан 28 November 2019 в 00:41
поделиться

Да, этот конструктор DateTime - http://msdn.microsoft.com/en-us/library/272ba130.aspx позволяет указать дату, а также часы, минуты и секунды.

0
ответ дан 28 November 2019 в 00:41
поделиться

Если вас совсем не беспокоит время, вы можете использовать свойство Date для DateTime ], который возвращает только дату (с установленным временем 00: 00: 0000)

if(MyDate.Date >= StartDate.Date && MyDate.Date <= EndDate.Date)
{
    //Code here
}
0
ответ дан 28 November 2019 в 00:41
поделиться

Если вы проводите сравнение, почему бы вам не сравнить с меньшим, чем начало следующего дня?

Например. если это был запрос Linq:

someList.Where(x => (currentDaysDate <= x.ItemDate ) && (x.ItemDate < nextDaysDate))
4
ответ дан 28 November 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: