Home | History | Annotate | Download | only in ports
      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 
     24 void 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 
     43 SkMSec 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