0

嘿伙计们,所以我试图用纪元时间创建一个时间戳。到目前为止,小时分秒和毫秒都没有问题。但是,我正处于一个十字路口,如何弄清楚月份和时间的日期。首先有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 }

它的未完成我目前只是停留在如何实施年月日。如果有人能引导我朝着正确的方向前进,那将不胜感激。

4

1 回答 1

0

将 Unix 纪元日期 (1/1/1970 00:00) 转换为其等效的儒略日期,将时间从秒转换为天,并将结果添加到纪元的儒略日期。这将为您提供所需时间的儒略日期。最后,将儒略日期转换回日期和时间。

您可以在网上找到适当的公式来转换儒略日期和从儒略日期转换。

于 2013-03-14T17:51:20.107 回答