Сравнить созданный DateTime с DateTime.Today в 18:00, C # - PullRequest
4 голосов
/ 24 мая 2010

В C # мне нужно сравнить значение DateTime.Today / 6pm с полем, в котором хранится Created DateTime.

В основном есть определенные функциональные возможности, которые доступны только в тот же день, что и созданный день, и только до 18:00.

Часть, которую я не до конца понимаю, состоит в том, как точно изобразить 6 вечера в Today для сравнения. Есть ли метод, который всегда возвращает, скажем, Midnight, который я могу затем сделать .AddHours(18);?

Я слишком усложняю это? Благодаря.

Ответы [ 7 ]

9 голосов
/ 24 мая 2010
DateTime SixPmToday = DateTime.Now.Date.AddHours(18);

Если вы выведете это, скажем, на консоль, вы получите (в моих региональных настройках):

5/24/2010 6:00:00 PM
7 голосов
/ 24 мая 2010

Вы можете использовать DateTime.Today.AddHours(18).DateTime.Today получает только текущую дату.

5 голосов
/ 24 мая 2010

попробуйте это:

var n =DateTime.Now;
var today_6pm = new DateTime(n.Year, n.Month, n.Day, 18,0,0)
4 голосов
/ 24 мая 2010
DateTime created; //get this from wherever

DateTime midnight = DateTime.Today; //DateTime.Today returns today's date at midnight
DateTime sixpm = midnight.AddHours(18);

if (created >= midnight && created <= sixpm)
{
    // created is today and prior to 6pm
}
1 голос
/ 24 мая 2010

Это решение.

var creationDate = ... // fetch the creation date from somewhere
var availableUntil = creationDate.Date.AddHours(18);
if (DateTime.Now <= availableUntil)
{
    // The functionality is available.
}

Проверяет, наступило ли это до 18:00 дня создания.

0 голосов
/ 24 мая 2010

Как насчет этого?

public static bool IsBefore6PM(System.DateTime _date)
{
     if(_date.CompareTo(System.DateTime.Today.AddHours(18)) < 0 && _date.CompareTo(System.DateTime.Today) >= 0)
     {
          return true;
     }  
     else
     {
          return false;
     }
}

Это также может быть изменено, если допустимая дата - с 8:00 до 18:00.

public static bool IsBefore6PM(System.DateTime _date)
    {
         if(_date.CompareTo(System.DateTime.Today.AddHours(18)) < 0 && _date.CompareTo(System.DateTime.Today.AddHours(8)) >= 0)
         {
              return true;
         }  
         else
         {
              return false;
         }
    }
0 голосов
/ 24 мая 2010

DateTime.Today.AddHours (18);

DateTime.Today возвращает DateTime с текущей датой и 12:00 утра как время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...