こんにちは、エポック時間でタイムスタンプを作成しようとしています。これまでのところ、時間、分、秒、ミリ秒は問題ありません。しかし、私は日月と時間を把握することで何をすべきかという岐路に立っています。まず問題点が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 }
その未完成の私は現在、年月日を実装する方法にこだわっています。誰かが私を正しい方向に導くことができれば、それは大歓迎です。