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