1 
2 /*
3  * Copyright 2006 The Android Open Source Project
4  *
5  * Use of this source code is governed by a BSD-style license that can be
6  * found in the LICENSE file.
7  */
8 
9 
10 #include "SkTime.h"
11 
12 #include <sys/time.h>
13 #include <time.h>
14 
GetDateTime(DateTime * dt)15 void SkTime::GetDateTime(DateTime* dt)
16 {
17     if (dt)
18     {
19         tzset();  // initialize timezone variable;
20         time_t m_time;
21         time(&m_time);
22         struct tm* tstruct;
23         tstruct = localtime(&m_time);
24         int offset = tstruct->tm_isdst == 1 ? 60 : 0;
25 
26         // http://pubs.opengroup.org/onlinepubs/009695399/basedefs/time.h.html
27         dt->fTimeZoneMinutes = SkToS16(offset - timezone / 60);
28         dt->fYear       = tstruct->tm_year + 1900;
29         dt->fMonth      = SkToU8(tstruct->tm_mon + 1);
30         dt->fDayOfWeek  = SkToU8(tstruct->tm_wday);
31         dt->fDay        = SkToU8(tstruct->tm_mday);
32         dt->fHour       = SkToU8(tstruct->tm_hour);
33         dt->fMinute     = SkToU8(tstruct->tm_min);
34         dt->fSecond     = SkToU8(tstruct->tm_sec);
35     }
36 }
37 
GetMSecs()38 SkMSec SkTime::GetMSecs()
39 {
40     struct timeval tv;
41     gettimeofday(&tv, NULL);
42     return (SkMSec) (tv.tv_sec * 1000 + tv.tv_usec / 1000 ); // microseconds to milliseconds
43 }
44