Многие сталкиваются с неудобством стандартного
времяисчисления.
Хорошо, что мы, в общем то, можем его игнорировать.
Но, тогда появляется вопрос: а как же ориентироваться во времени.
Я попытался решить эту проблему.
24 и 60 - некруглые числа и они нерулят. 86400 (кол-во секунд в сутках)
тоже.
Гораздо удобнее, когда в сутках 256 (0x00-0xff) часов по 256 минут.
Это получается, (новых минут) 65536 (16 bit'ный счётчик).
2-й, гораздо более спорный вопрос, ориентирование в днях и годах.
Слишком уж далеки 365/366 от круглых 256 и 512.
Но, деваться некуда. Берём 256.
Отсчёт времени берём от стандартного UNIX времени.
Итого, получаем:
Код
#include <stdio.h>
#include <time.h>
main ()
{
time_t tbox;
long y, d, h, m;
time (&tbox);
tbox = tbox * 512 / 675;
y = (long) tbox >> 24;
tbox -= y << 24;
d = (long) tbox >> 16;
tbox -= d << 16;
h = (long) tbox >> 8;
tbox -= h << 8;
m = (long) tbox;
printf ("%x year, %x day, %x:%x\n", y, d, h, m);
}
Enjoy!
35 year, f8 day, b1:a5