| 114 | } |
| 115 | |
| 116 | void Platform::fileToLocalTime(const FileTime & ft, LocalTime * lt) |
| 117 | { |
| 118 | if(!lt) |
| 119 | return; |
| 120 | |
| 121 | dMemset(lt, 0, sizeof(LocalTime)); |
| 122 | |
| 123 | FILETIME winFileTime; |
| 124 | winFileTime.dwLowDateTime = ft.v1; |
| 125 | winFileTime.dwHighDateTime = ft.v2; |
| 126 | |
| 127 | SYSTEMTIME winSystemTime; |
| 128 | |
| 129 | // convert the filetime to local time |
| 130 | FILETIME convertedFileTime; |
| 131 | if(::FileTimeToLocalFileTime(&winFileTime, &convertedFileTime)) |
| 132 | { |
| 133 | // get the time into system time struct |
| 134 | if(::FileTimeToSystemTime((const FILETIME *)&convertedFileTime, &winSystemTime)) |
| 135 | { |
| 136 | SYSTEMTIME * time = &winSystemTime; |
| 137 | |
| 138 | // fill it in... |
| 139 | lt->sec = time->wSecond; |
| 140 | lt->min = time->wMinute; |
| 141 | lt->hour = time->wHour; |
| 142 | lt->month = time->wMonth - 1; |
| 143 | lt->monthday = time->wDay; |
| 144 | lt->weekday = time->wDayOfWeek; |
| 145 | lt->year = (time->wYear < 1900) ? 1900 : (time->wYear - 1900); |
| 146 | |
| 147 | // not calculated |
| 148 | lt->yearday = 0; |
| 149 | lt->isdst = false; |
| 150 | } |
| 151 | } |
| 152 | } |
| 153 | |
| 154 | U32 Platform::getRealMilliseconds() |
| 155 | { |