1f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 2f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger/* 3f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Copyright 2009 The Android Open Source Project 4f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * 5f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 6f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger * found in the LICENSE file. 7f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger */ 8f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 9f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 10f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger#include "SkTime.h" 11f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 12f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenbergervoid SkTime::GetDateTime(DateTime* dt) 13f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger{ 14f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger if (dt) 15f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger { 16f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger SYSTEMTIME st; 17f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger GetSystemTime(&st); 18f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 19f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fYear = st.wYear; 20f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fMonth = SkToU8(st.wMonth + 1); 21f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fDayOfWeek = SkToU8(st.wDayOfWeek); 22f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fDay = SkToU8(st.wDay); 23f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fHour = SkToU8(st.wHour); 24f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fMinute = SkToU8(st.wMinute); 25f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger dt->fSecond = SkToU8(st.wSecond); 26f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger } 27f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger} 28f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger 29f8cacf6b11e35785df8efb613b0c3592d535f603Derek SollenbergerSkMSec SkTime::GetMSecs() 30f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger{ 31f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger FILETIME ft; 32f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger LARGE_INTEGER li; 33f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger GetSystemTimeAsFileTime(&ft); 34f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger li.LowPart = ft.dwLowDateTime; 35f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger li.HighPart = ft.dwHighDateTime; 36f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger __int64 t = li.QuadPart; /* In 100-nanosecond intervals */ 37f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger return (SkMSec)(t / 10000); /* In milliseconds */ 38f8cacf6b11e35785df8efb613b0c3592d535f603Derek Sollenberger} 39