Компоненты времени отделены друг от друга в Objective-C - PullRequest
0 голосов
/ 06 апреля 2011

С и я работаю над говорящими часами. Моя проблема в том, что я могу сэкономить время (часы и минуты) за две NSInteger с, но я не могу их сравнить.

Конкретная проблема заключается в том, что я хочу разделить время (например, час хранится в NSInteger следующим образом: 16. Я хочу получить 1 и 6 отдельно). Я хочу отделить одну цифру от другой цифры, чтобы сравнить их.

Кто-нибудь может мне помочь? Хороший синтаксис сравнения также очень поможет! Благодарю.

Ответы [ 2 ]

0 голосов
/ 06 апреля 2011

Мне нравится использовать для этой цели функцию div (для NSInteger используйте ldiv):

ldiv_t q;
NSInteger hours = 16;
q = ldiv(hours, 10);
NSInteger hours_tens_digit = q.quot;
NSInteger hours_minutes_digit = q.rem;

Обновление: как указано вкомментарий, NSInteger на iOS 32-битный, поэтому вы можете использовать либо div, либо ldiv.(Использование стандартных библиотечных функций, которые набираются так, как это, является, конечно, одной из ситуаций, когда NSInteger внезапно становится гораздо менее полезным.)

0 голосов
/ 06 апреля 2011

Если я понял ваш запрос, вы хотите разделить все число на цифры от 0-9?

вы можете сделать это так:

int hours = 16
int hour1 = hours / 10;
int hour2 = hours - hour1
hour2     = hours % 10;

int minutes = 47;
int minute1 = minutes / 10;
int minute2 = minutes - minute1;
minute2 = minutes % 10;
...