Текущую дату, конвертируйте в несколько часовых поясов, затем каждая из них должна проверить, близка ли она к другой дате - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть проект, который мне нужен, чтобы получить текущую дату / время. С этой даты / времени мне нужно конвертировать в 6 разных часовых поясов дату / время. Нет проблем с преобразованием времени.

Затем из каждой конвертированной даты / времени мне нужно узнать, находится ли эта дата между двумя другими датами, которые меняются каждую неделю. Я предполагаю, что времена, которые меняются каждую неделю, могут быть массивом дат. Текущей дате / времени в этом часовом поясе необходимо выяснить, с какой датой / временем в массиве нужно себя проверять. Ближайший до и ближайший после. Это звучит очень запутанно, просто набрав это.

Любая помощь, указывающая мне правильное направление, была бы чрезвычайно полезной.

Thankyou

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Чтобы проверить, находится ли дата в указанном диапазоне, просто получите метки времени Unix и сравните их напрямую следующим образом:

NSDate *lowerLimit = ...
NSDate *upperLimit = ...
NSDate *myDate = ...

BOOL inRange = (lowerLimit.timeIntervalSince1970 <= myDate.timeIntervalSince1970) &&
  (upperLimit.timeIntervalSince1970 >= myDate.timeIntervalSince1970);

Вы также можете использовать метод NSDate -compare:, но ядумаю, что более естественно сравнивать временные метки.

0 голосов
/ 04 февраля 2012
NSDate *date1;
NSDate *date2;
NSDate *date3;

NSTimeInterval firstTimeInterval = [date1 timeIntervalSince1970];
NSTimeInterval secondTimeInterval = [date2 timeIntervalSince1970];
NSTimeInterval thirdTimeInterval = [date3 timeIntervalSince1970];

if (firstTimeInterval<secondTimeInterval && secondTimeInterval<thirdTimeInterval) {
    // date2 > date1 and date2 < date3
}

Конечно, в моем случае это может привести к сбою, поскольку у дат нет адресов, но это всего лишь пример ... У вас должны быть фактические даты.

...