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)15void 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()38SkMSec 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