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