11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2009 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 940528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 1040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger#include "SkTime.h" 1140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 1240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenbergervoid SkTime::GetDateTime(DateTime* dt) 1340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger{ 1440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger if (dt) 1540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger { 1640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger SYSTEMTIME st; 1740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger GetSystemTime(&st); 1840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 1940528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fYear = st.wYear; 2040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fMonth = SkToU8(st.wMonth + 1); 2140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fDayOfWeek = SkToU8(st.wDayOfWeek); 2240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fDay = SkToU8(st.wDay); 2340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fHour = SkToU8(st.wHour); 2440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fMinute = SkToU8(st.wMinute); 2540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger dt->fSecond = SkToU8(st.wSecond); 2640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger } 2740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger} 2840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger 2940528743dbb9ce7f39f093e0cdc47849ac8887cfDerek SollenbergerSkMSec SkTime::GetMSecs() 3040528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger{ 3140528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger FILETIME ft; 3240528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger LARGE_INTEGER li; 3340528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger GetSystemTimeAsFileTime(&ft); 3440528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger li.LowPart = ft.dwLowDateTime; 3540528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger li.HighPart = ft.dwHighDateTime; 3640528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger __int64 t = li.QuadPart; /* In 100-nanosecond intervals */ 3740528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger return (SkMSec)(t / 10000); /* In milliseconds */ 3840528743dbb9ce7f39f093e0cdc47849ac8887cfDerek Sollenberger} 39