NSTimeInterval сегодняшнего дня с нулевым временем (полночь)

как я могу рассчитать NSTimeInterval сегодня с часами, минутами и секундами до нуля?

я знаю, что NSTimeInterval сегодня это:

NSTimeInterval  today = [[NSDate date] timeIntervalSince1970];

но как я могу сбросить время?


person Piero    schedule 19.05.2013    source источник
comment
что?...у меня есть nstimeinterval на сегодня, но я хочу установить его на 00:00:00 времени...   -  person Piero    schedule 19.05.2013


Ответы (3)


Вам нужно использовать NSDateComponents, чтобы получить только год, месяц и день сегодняшнего дня, затем вы можете создать из них дату, которая будет в полночь.

person Wain    schedule 19.05.2013

Когда у вас есть NSTimeInterval из now, вызовите следующую функцию:

inline NSTimeInterval trimTimeInterval(NSTimeInterval interval)
{
    static NSTimeInterval const day = 3600 * 24;
    return day * floor(interval / day);
}

Сначала мы вычисляем количество целых дней в interval, а затем получаем то же значение, за исключением элемента времени.

Однако обратите внимание, что этот код не будет учитывать часовой пояс. Таким образом, вы можете получить 23 мая вместо 24 мая для GMT+N>0.

person Aleks N.    schedule 27.03.2015

person    schedule
comment
Это немного перебор, не так ли? Просто установите часы, минуты и секунды currentDateComponents на 0 и спросите у календаря, что это будет NSDate. - person JustSid; 19.05.2013