datetime — алгоритм с временем эпохи и днями месяцами годами. Переполнение стека

Привет, ребята, так что я пытаюсь создать метку времени эпохи. До сих пор часы, минуты, секунды и миллисекунды не были проблемой. однако я нахожусь на распутье, что делать с выяснением дней месяцев и часов. Во-первых, есть 2 проблемы. Количество дней в каждом месяце варьируется без единой закономерности и вопроса о високосных годах. Я боролся с тем, как реализовать правильную систему. Я полагаю, что мог бы пойти условным путем, однако, возможно, есть какая-то таблица, которую я также могу реализовать (подсказка инструктора.

Пока это алгоритм, который у меня есть до нескольких часов, если кому-то интересно.

28 ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime)
29 {
30     tzset();                                    // Corrects timezone
31
32     int epochT = (tv->tv_sec) - timezone;       // Epoch seconds with
33     int epochUT = tv->tv_usec;                  // Timezone correction
34
35     int seconds = epochT % 60;
36     epochT /= 60;
37     etime->et_sec = seconds;
38     etime->et_usec = epochUT;
39
40     int minutes = epochT % 60;
41     epochT /= 60;
42     etime->et_min = minutes;
43
44     int hours = (epochT % 24) + daylight;       // Hours with DST correction
45     epochT /= 24;
46     etime->et_hour = hours;
47
48
49     printf("%d,%d,%d\n", seconds, minutes, hours);
50     printf("%d\n", epochUT);
51     printf("%d\n", timezone);
52     printf("%d\n", daylight);
53     return etime;
54
55 }
56
57 char* formatTime(struct timeval* tv, char* buf, size_t len)
58 {
59
60 struct ExpandedTime etime2;
61 localTime(tv, &etime2);
62 snprintf();
63 }

Это незаконченное, я просто в настоящее время застрял на том, как реализовать годы, месяцы, дни. если бы кто-то мог просто привести меня в правильном направлении, это было бы очень ценно.

0

Решение

Преобразование даты эпохи Unix (01.01.1970 00:00) в эквивалентную ей юлианскую дату, преобразование времени из секунд в дни и добавление результата в юлианскую дату эпохи. Это дает вам юлианскую дату желаемого времени. Наконец, конвертируйте юлианскую дату обратно в дату и время.

Вы можете найти соответствующие формулы для преобразования в и из юлианской даты в Интернете.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector