Получить правильное время - PullRequest
0 голосов
/ 16 мая 2011

Я получаю текущее время и пытаюсь разделить его на две отдельные переменные.Я хочу, чтобы время было в 12 часов, а не в 24

Когда я делаю это, первая и вторая переменные совпадают.Как я могу это исправить?

int hour = DateTime.Now.Hour % 12;
if (hour == 0) hour = 12;

затем,

FirstDigitHour = hour / 10;
secondDigitHour = hour %  10;

время здесь 6 вечера, поэтому FirstDigitHour и secondDigitHour оба = 6

первая цифра должна равняться0

Ответы [ 4 ]

7 голосов
/ 16 мая 2011

Если вы пытаетесь отформатировать время для отображения, я бы посоветовал вам использовать правильную строку формата:

DateTime.Now.ToString("hh tt")

Какое время в 12-часовом формате из 2 цифр ( чч ) с AM / PM ( tt )

См. Документацию:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

3 голосов
/ 16 мая 2011

Разве это не удовлетворит вашу потребность лучше

var x = DateTime.Now.ToString ("чч");

возвращает строку с часами в 12-часовом формате (например, "01" или "02" ... "11" "12")

Тогда вы можете просто получить первую и вторую цифру, вот так

int firstDigit = Convert.ToInt32 (x [0] .ToString ());

int secondDigit = Convert.ToInt32 (x [1] .ToString ());

2 голосов
/ 16 мая 2011

Кажется, работает нормально для меня.

        int hr = 18; // 6pm
        int hour = hr % 12;
        if (hour == 0)
            hour = 12;
        int fd = hour/10;
        int ld = hour%10;

в этом случае у меня есть fd = 0 и ld = 6.

См. он работает .

0 голосов
/ 16 мая 2011

Проверьте, есть ли вторая цифра первой ... если DateTime.Now.Hour> 10. Тогда она у вас есть.

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