summaryrefslogtreecommitdiff
path: root/src/time/mktime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/time/mktime.c')
-rw-r--r--src/time/mktime.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/time/mktime.c b/src/time/mktime.c
new file mode 100644
index 00000000..858cd50d
--- /dev/null
+++ b/src/time/mktime.c
@@ -0,0 +1,24 @@
+#include <time.h>
+
+#include "__time.h"
+
+time_t mktime(struct tm *tm)
+{
+ int isdst = tm->tm_isdst;
+ time_t t, lt;
+
+ __tzset();
+
+ tm->tm_sec += __timezone;
+ if (isdst > 0) tm->tm_sec += __dst_offset;
+
+ t = __tm_to_time(tm);
+
+ lt = t - __timezone;
+ if (isdst > 0) lt -= __dst_offset;
+ __time_to_tm(lt, tm);
+
+ __dst_adjust(tm);
+
+ return t;
+}