Как проверить, происходит ли DateTime сегодня?

Дельфи 7 грамматика позади книги Object Pascal.

Вы имеете в виду за несколько тысяч долларов, они даже не отправляют Вам это? Они даже отправляют Вам 6' x 6' плакатов?

100
задан mbdavis 17 June 2015 в 16:05
поделиться

10 ответов

if (newsStory.WhenAdded.Date == DateTime.Today)
{

}
else
{

}

Должен помочь.

200
ответ дан 24 November 2019 в 04:48
поделиться
if( newsStory.Date == DateTime.Today )
{
    // happened today
}
27
ответ дан 24 November 2019 в 04:48
поделиться

Try

if (newsStory.Date == DateTime.Now.Date) 
{ /* Story happened today */ }
else
{ /* Story didn't happen today */ }
14
ответ дан 24 November 2019 в 04:48
поделиться

FYI,

newsStory.Date == DateTime.Today

will return the same compare result as coding

newsStory == DateTime.Today

where newsStory is a DateTime object

.NET is smart enough to determine you want to compare based on Date only and uses that for the internal Compare. Not sure why, and actually having trouble finding documentation for this behaviour.

5
ответ дан 24 November 2019 в 04:48
поделиться

Если NewsStory также использовала DateTime, просто сравните свойство Date, и все готово.

Однако это зависит от того, что на самом деле означает «сегодня». Если что-то будет опубликовано незадолго до полуночи, через короткое время оно станет «старым». Так что, возможно, было бы лучше сохранить точную дату истории (включая время, предпочтительно UTC) и проверить, прошло ли менее 24 часов (или чего-то еще), что просто (даты можно вычесть, что дает вам TimeSpan с TotalHours или свойство TotalDays).

7
ответ дан 24 November 2019 в 04:48
поделиться

Как Гийам предложил в комментарии , сравните значения свойств Date :

newStory.Date == DateTime.Now.Date
3
ответ дан 24 November 2019 в 04:48
поделиться

Как насчет

if (newsStory.DayOfYear == DateTime.Now.DayOfYear)
{ // Story happened today
}

Но это также будет верно для 1 января 2008 г. и 1 января 2009 г., что может быть, а может и не быть тем, что вы хотите.

-4
ответ дан 24 November 2019 в 04:48
поделиться

Попробуйте следующее:

newsStory.Date == DateTime.Today
2
ответ дан 24 November 2019 в 04:48
поделиться

вы можете использовать DateTime.Now.DayOfYear

 if (newsStory.DayOfYear == DateTime.Now.DayOfYear)
 { // story happened today

 }
 else
 { // story didn't happen today

 }
-6
ответ дан 24 November 2019 в 04:48
поделиться

ну, DateTime имеет свойство «Date», и вы можете просто сравнивать на основе на что. Но, глядя на документацию, кажется, что получение этого свойства фактически создает экземпляр нового datetime с компонентом времени, установленным на полночь, поэтому это вполне может быть медленнее, чем доступ к каждому отдельному компоненту, хотя намного чище и удобочитаемее.

1
ответ дан 24 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

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