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