Как извлечь часы из time_t?

Я хочу извлечь часы, минуты и секунды в виде целочисленных значений из значения time_t, представляющего секунды с начала эпохи.

Неверное значение для часов. Почему?

#include <stdio.h>
#include <time.h>

#include <unistd.h>

int main()
{
    char buf[64];

    while (1) {
        time_t t = time(NULL);
        struct tm *tmp = gmtime(&t);

        int h = (t / 360) % 24;  /* ### My problem. */
        int m = (t / 60) % 60;
        int s = t % 60;

        printf("%02d:%02d:%02d\n", h, m, s);

        /* For reference, extracts the correct values. */
        strftime(buf, sizeof(buf), "%H:%M:%S\n", tmp);
        puts(buf);
        sleep(1);
    }
}

Вывод (час должен быть 10)

06:15:35
10:15:35

06:15:36
10:15:36

06:15:37
10:15:37
7
задан Abhineet 28 June 2012 в 12:31
поделиться