1/* libs/graphics/ports/SkTime_Unix.cpp
2**
3** Copyright 2006, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18#include "SkTime.h"
19
20#if defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_MAC)
21#include <sys/time.h>
22#include <time.h>
23
24void SkTime::GetDateTime(DateTime* dt)
25{
26    if (dt)
27    {
28        time_t m_time;
29        time(&m_time);
30        struct tm* tstruct;
31        tstruct = localtime(&m_time);
32
33        dt->fYear       = tstruct->tm_year;
34        dt->fMonth      = SkToU8(tstruct->tm_mon + 1);
35        dt->fDayOfWeek  = SkToU8(tstruct->tm_wday);
36        dt->fDay        = SkToU8(tstruct->tm_mday);
37        dt->fHour       = SkToU8(tstruct->tm_hour);
38        dt->fMinute     = SkToU8(tstruct->tm_min);
39        dt->fSecond     = SkToU8(tstruct->tm_sec);
40    }
41}
42
43SkMSec SkTime::GetMSecs()
44{
45    struct timeval tv;
46    gettimeofday(&tv, NULL);
47    return (SkMSec) (tv.tv_sec * 1000 + tv.tv_usec / 1000 ); // microseconds to milliseconds
48}
49
50#endif
51