2012-03-25 1 views
1

да, это вопрос программирования iOS.Как рассчитать точную годовщину погружения Titanic

Мне нужно рассчитать точное время, когда RMS Titanic опустился на 100-летний юбилей.

It sunk at 15th April 1912 2:20 a.m. 

Глупый вопрос, который вы говорите. Сотый год годовщина

15th April 1912 2:20 a.m. 
+100 years 
15th April 2012 2:20 a.m. 

Но я хочу тревоги, чтобы уйти в любой временной зоны в мире точно и нужно обрабатывать часовых поясов, и такие вещи, как British Summer Time является один час вперед пока оно не вступит в силу до 1918 года .... но на сегодня 25 марта 2012 г. Лондон IS в BST так на час вперед.

Im confused on timezones. У нас есть GMT и UTC. Корабли опустились на 49 ° 56 '49 "з.д., 41 ° 43' 32" N, так что на несколько часов раньше Лондона. -49,94822196927015 41,72713826043066

Whats the correct way to enter a historic date into NSCalendar 
and to add 100 years to it exactly and get back the right time 
in the users current timezone? 

Я замечаю Theres японские и исламские форматы каландровых в вариантах NSCalendar. Могут ли устройства iOS изменить даты на эти календари? И если это так. как бы я обратился от григорианцев к исламу?

хороший трудный мозг, чтобы начать свою неделю :)

ответ

1

(Там нет кода здесь, как я никогда не использовал API IOS. Тем не менее, у меня есть некоторый опыт даты APIs/времени и странности они бросают вверх , так что я надеюсь, что вы нашли этот ответ полезным в любом случае.)

Что такое правильный способ ввести историческую дату в NSCalendar и добавить 100 лет к ней точно и вернуться в нужное время в пользователей текущего часового пояса ?

Это действительно зависит от того, что вы подразумеваете под «100 лет» - это не так, как будто это фиксированное количество времени.

Я бы принял время UTC, когда оно затонуло, применил местный часовой пояс пользователя, а затем добавил к этому сто лет. Тем не менее, вам тогда нужно учитывать, что результат может фактически не быть допустимым местным временем в этом часовом поясе.

Например, предположим, что вы находитесь в часовом поясе, где в момент погружения было 1:20 утра ... но в этот часовой пояс, 15 апреля 2012 года, когда часы меняются - и они пропускают из 1:00 до 2:00. В этом случае 1:20 никогда не происходит ... поэтому вы могли бы выбрать 12:20 утра, момент до перехода на летнее время, момент перехода на летнее время или 2:20 утра, в зависимости от того, что вы считаете подходящим.

Другая возможность рассмотреть противоположность - предположим, что это переход на летнее время, который идет от 2 утра до 1 часа ... так что на самом деле происходит 1:20 утра дважды. Что бы вы хотели сделать в этом случае? Вы, вероятно, не должны делать свое приложение праздновать годовщину дважды!

Другой вариант, который устраняет эту возможность двусмысленности и несоответствие работы, что смещение от UTC в часовом поясе пользователя было в точное время потопления, а затем добавить 100 лет до значения в UTC (который будет никогда не имеют каких-либо переходов DST) и повторите одно и то же смещение.

Я замечаю, что в форматах NSCalendar меняются форматы японских и исламских календарей. Могут ли устройства iOS изменить даты на эти календари? И если это так. как бы я обратился от григорианцев к исламу?

Я не знаю, на этом фронте, боюсь.

+0

ура. да не хочу ошибаться –

 Смежные вопросы

  • Нет связанных вопросов^_^