嘿伙计,所以我试图用纪元时间创建一个时间戳。到目前为止,小时分钟秒和毫秒都没有问题。然而,我正处在如何处理数月和数小时的十字路口。首先,有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 :(得分:0)
将Unix纪元日期(1/1/1970 00:00)转换为等效的Julian日期,将时间从秒转换为天,并将结果添加到纪元的Julian日期。这将为您提供所需时间的Julian日期。最后,将Julian日期转换回日期和时间。
您可以找到适当的公式,以便在网络上与朱利安日期进行转换。